home *** CD-ROM | disk | FTP | other *** search
/ ShareWare OnLine 2 / ShareWare OnLine Volume 2 (CMS Software)(1993).iso / prog / inter35b.zip / INTERRUP.H < prev    next >
Text File  |  1993-06-05  |  295KB  |  8,021 lines

  1. Interrupt List, part 8 of 9
  2. This compilation is Copyright (c) 1989,1990,1991,1992,1993 Ralf Brown
  3. --------N-50---------------------------------
  4. INT 50 - TIL Xpert AIM (X.25)
  5.     AH = function
  6. --------H-50---------------------------------
  7. INT 50 - IRQ0 relocated by DESQview
  8. Notes:    this is the default location for older versions; DESQview v2.26+
  9.       searches for unused ranges of interrupts and uses the lowest
  10.       available range in its list for relocating these IRQs and the next
  11.       lowest for relocating IRQ8-IRQ15
  12.     a range of eight interrupts starting at a multiple of 8 is considered
  13.       available if all vectors are identical and it has not been excluded
  14.       with an /XB:nn commandline switch
  15.     the list of ranges for v2.26 is 50h,58h,68h,78h,F8h (if < two of these
  16.       are available, F8h and then 50h are used anyway)
  17.     the list of ranges for v2.31+ is 68h,78h,88h-B8h,F8h (if < two of these
  18.       are available, F8h and then F0h are used anyway)
  19. SeeAlso: INT 08"IRQ0",INT 51"DESQview",INT 54"DESQview",INT 58"DESQview"
  20. SeeAlso: INT D8"Screen Thief"
  21. --------H-50---------------------------------
  22. INT 50 - IRQ0 relocated by IBM 3278 emulation control program
  23. SeeAlso: INT 51"IBM 3278"
  24. --------H-50---------------------------------
  25. INT 50 - IRQ0 relocated by OS/2 v1.x
  26. SeeAlso: INT 51"OS/2"
  27. --------V-500000-----------------------------
  28. INT 50 - Vanderaart TEXT WINDOWS, PC Thuis Shell - OPEN TEXT WINDOW
  29.     AX = 0000h
  30.     ES:BX -> name string or ES:0000h if none
  31.     CH,CL = row,column of upper left corner
  32.     DH,DL = row,column of lower right corner
  33. Return: AX = window handle or
  34.         0000h if not installed
  35.         FFFFh on error
  36. SeeAlso: AX=0001h,AX=0002h"TEXT WINDOWS"
  37. --------V-500001-----------------------------
  38. INT 50 - Vanderaart TEXT WINDOWS, PC Thuis Shell - CLOSE TEXT WINDOW
  39.     AX = 0001h
  40.     DI = window handle
  41. SeeAlso: AX=0000h
  42. --------V-500002-----------------------------
  43. INT 50 - Vanderaart TEXT WINDOWS - PUT CHARACTER IN WINDOW
  44.     AX = 0002h
  45.     BL = character
  46.     BH = attribute
  47.     DL = column
  48.     DH = row
  49.     DI = window handle
  50. Return: AX = status
  51.         0000h if successful
  52.         FFFFh if outside window
  53. SeeAlso: AX=0000h
  54. --------l-500002-----------------------------
  55. INT 50 - PC Thuis Organizer Shell - PLOT TEXT
  56.     AX = 0002h
  57.     ES:BX -> text string
  58.     DH,DL = row,column of upper left corner
  59.     DI = window handle
  60. Return: AX = status
  61.         0000h successful (text fits in window)
  62.         FFFFh error
  63. Program: The PC Thuis Organizer Shell was written by John Vanderaart and
  64.       published in the June/July 1990 issue of PC Thuis Power magazine
  65. --------V-500003-----------------------------
  66. INT 50 - Vanderaart TEXT WINDOWS - OUTPUT LINE TO WINDOW
  67.     AX = 0003h
  68.     ES:BX -> text string
  69.     CX = string length (0000h if ASCIZ string)
  70.     DL = position (FFh centered, else flush left)
  71.     DH = starting row
  72.     DI = window handle
  73. Return: AX = status
  74.         0000h successful
  75.         FFFFh did not fit in window
  76. --------l-500003-----------------------------
  77. INT 50 - PC Thuis Organizer Shell - WRITE FILE
  78.     AX = 0003h
  79.     ES:BX -> data to be written
  80.     CX = number of bytes to write
  81.     DS:SI -> filename
  82. Return: AX = status
  83.         0000h successful
  84.         FFFFh error
  85. SeeAlso: AX=0004h"Shell"
  86. --------V-500004-----------------------------
  87. INT 50 - Vanderaart TEXT WINDOWS - GET KEY
  88.     AX = 0004h
  89.     CH = type
  90.         00h any key
  91.         01h 'J' or 'N' (Dutch for yes/no)
  92. Return: AX = key
  93. SeeAlso: INT 16/AH=00h
  94. --------l-500004-----------------------------
  95. INT 50 - PC Thuis Organizer Shell - READ FILE
  96.     AX = 0004h
  97.     ES:BX -> buffer for data
  98.     CX = number of bytes to read or 0000h for entire file
  99.     DL = file type
  100.         01h setting shell
  101.         02h setting sterm
  102.         03h INT21 file
  103.     DS:SI -> filename
  104. Return: AX = status
  105.         0000h successful
  106.         FFFFh error
  107. Note:    file type numbers are maintained by John Vanderaart; if a new file type
  108.       is needed, a type number should be requested from him through the
  109.       magazine:
  110.         PC Thuis BV
  111.         Spaarne 55
  112.         2011 CE HAARLEM
  113.         The Netherlands
  114. SeeAlso: AX=0003h"Shell"
  115. --------V-500005-----------------------------
  116. INT 50 - Vanderaart TEXT WINDOWS - CHANGE ATTRIBUTE
  117.     AX = 0005h
  118.     BL = new attribute
  119.     CH,CL = row,column of upper left corner
  120.     DH,DL = row,column of lower right corner
  121.     DI = window handle
  122. --------l-500005-----------------------------
  123. INT 50 - PC Thuis Organizer Shell - PROMPT YES/NO
  124.     AX = 0005h
  125.     ES:BX -> prompt string (ES:0000h if no prompt)
  126. Return: AX = key pressed
  127.         0000h "J" (Dutch "Ja" = "Yes")
  128.         FFFFh "N" (Dutch "Nee" = "No")
  129. Program: The PC Thuis Organizer Shell was written by John Vanderaart and
  130.       published in the June/July 1990 issue of PC Thuis Power magazine
  131. --------V-500006-----------------------------
  132. INT 50 - Vanderaart TEXT WINDOWS - EDIT LINE IN WINDOW
  133.     AX = 0006h
  134.     ES:BX -> text string
  135.     CH = type
  136.         00h everything
  137.         01h uppercase only
  138.         02h positive numbers
  139.         03h Dutch postal code ("9999 AA")
  140.         04h 'J' or 'N' (Dutch yes/no)
  141.         05h telephone or FAX number
  142.         06h positive or negative number
  143.         07h date (dd/mm/yy)
  144.         08h money
  145.         09h '1' through '8'
  146.         0Ah '1' through '4'
  147.         0Bh uppercase filenames
  148.     DH,DL = row,column of upper left corner
  149.     DI = window handle
  150. Return: AX = key which terminated entry
  151.         0000h Enter
  152.         0001h Esc
  153.         0002h Down arrow
  154.         0003h Up arrow
  155.         0004h F10
  156. --------l-500006-----------------------------
  157. INT 50 - PC Thuis Organizer Shell - ALERT USER
  158.     AX = 0006h
  159.     ES:BX -> string
  160. --------l-500007-----------------------------
  161. INT 50 - PC Thuis Organizer Shell - DO LINE
  162.     AX = 0007h
  163.     ES:BX -> text string
  164.     CX = string length in bytes (0000h if NUL-terminated)
  165.     DL = FFh to center string, else flush left
  166.     DH = upper left row
  167.     DI = window handle
  168. Return: AX = status
  169.         0000h successful
  170.         FFFFh error
  171. Program: The PC Thuis Organizer Shell was written by John Vanderaart and
  172.       published in the June/July 1990 issue of PC Thuis Power magazine
  173. --------l-500008-----------------------------
  174. INT 50 - PC Thuis Organizer Shell - DO MENU
  175.     AX = 0008h
  176.     ES:BX -> menu structure
  177. Return: AL = index 1 or FFh if not selected
  178.     AH = index 2 or FFh if not selected
  179.     BL = index 3 or FFh if not selected
  180.     BH = index 4 or FFh if not selected
  181. SeeAlso: AX=000Ch
  182. --------l-500009-----------------------------
  183. INT 50 - PC Thuis Organizer Shell - MESSAGE ON
  184.     AX = 0009h
  185.     ES:BX -> message string
  186. SeeAlso: AX=000Ah
  187. --------l-50000A-----------------------------
  188. INT 50 - PC Thuis Organizer Shell - MESSAGE OFF
  189.     AX = 000Ah
  190. SeeAlso: AX=0009h
  191. --------l-50000B-----------------------------
  192. INT 50 - PC Thuis Organizer Shell - CHANGE ATTRIBUTE
  193.     AX = 000Bh
  194.     BL = new attribute
  195.     CH,CL = row,column of upper left corner
  196.     DH,DL = row,column of lower right corner
  197.     DI = window handle
  198. --------l-50000C-----------------------------
  199. INT 50 - PC Thuis Organizer Shell - DO REQUEST
  200.     AX = 000Ch
  201.     ES:BX -> request structure
  202. Return: AX = status
  203.         0000h confirmed
  204.         FFFFh denied
  205. SeeAlso: AX=0008h
  206. --------l-50000D-----------------------------
  207. INT 50 - PC Thuis Organizer Shell - EDIT LINE
  208.     AX = 000Dh
  209.     ES:BX -> text string
  210.     CL = length
  211.     CH = type
  212.         bit 0: force uppercase
  213.         bit 1: integer
  214.         bit 2: no spaces allowed
  215.         bit 3: no cursor keys
  216.     DH,DL = row,column of upper left corner
  217.     DI = window handle
  218. Return: AX = result code
  219. Program: The PC Thuis Organizer Shell was written by John Vanderaart and
  220.       published in the June/July 1990 issue of PC Thuis Power magazine
  221. --------l-50000E-----------------------------
  222. INT 50 - PC Thuis Organizer Shell - PLOT CHARACTER
  223.     AX = 000Eh
  224.     BL = character
  225.     BH = attribute
  226.     DH,DL = row,column at which to plot
  227.     DI = window handle
  228. Return: AX = status
  229.         0000h successful
  230.         FFFFh errror
  231. --------l-50000F-----------------------------
  232. INT 50 - PC Thuis Organizer Shell - EMPTY WINDOW
  233.     AX = 000Fh
  234.     BL = character
  235.     BH = attribute
  236.     DI = window handle
  237. --------l-500010-----------------------------
  238. INT 50 - PC Thuis Organizer Shell - TRACE MENU
  239.     AX = 0010h
  240.     ES:BX -> first menu structure
  241.     CL = hotkey to look up
  242. Return: AL = index 1 or FFh if not selected
  243.     AH = index 2 or FFh if not selected
  244.     BL = index 3 or FFh if not selected
  245.     BH = index 4 or FFh if not selected
  246. --------l-500011-----------------------------
  247. INT 50 - PC Thuis Organizer Shell - MOVE MEMORY
  248.     AX = 0011h
  249.     DS:SI -> source
  250.     ES:DI -> destination
  251.     CX = number of bytes to move (0000h = until NUL string terminator???)
  252. SeeAlso: AX=0012h
  253. --------l-500012-----------------------------
  254. INT 50 - PC Thuis Organizer Shell - COMPARE MEMORY
  255.     AX = 0012h
  256.     DS:SI -> source
  257.     ES:DI -> destination
  258.     CX = number of bytes to compare (0000h=until NUL string terminator???)
  259. Return: AX = status
  260.         0000h same
  261.         FFFFh different
  262. SeeAlso: AX=0011h
  263. --------l-500013-----------------------------
  264. INT 50 - PC Thuis Organizer Shell - GET KEY
  265.     AX = 0013h
  266.     CH = type flags
  267.         bit 0: force uppercase
  268.         bit 1: integer
  269.         bit 2: no spaces
  270. Return: AX = keystroke
  271. --------l-500014-----------------------------
  272. INT 50 - PC Thuis Organizer Shell - SCROLL WINDOW
  273.     AX = 0014h
  274.     BL = direction
  275.         06h up
  276.         07h down
  277.     BH = attribute
  278.     DI = window handle
  279. SeeAlso: INT 10/AH=06h,INT 10/AH=07h
  280. --------l-500015-----------------------------
  281. INT 50 - PC Thuis Organizer Shell - GET MEMORY HANDLE
  282.     AX = 0015h
  283.     BL = handle size
  284.         00h 65536 bytes (64K)
  285.         01h 65535 bytes (64K-1)
  286.         02h 32768 bytes (32K)
  287.         03h 32767 bytes (32K-1)
  288. Return: AX = segment
  289. Program: The PC Thuis Organizer Shell was written by John Vanderaart and
  290.       published in the June/July 1990 issue of PC Thuis Power magazine
  291. SeeAlso: INT 21/AH=48h
  292. --------H-51---------------------------------
  293. INT 51 - IRQ1 relocated by DESQview
  294. Note:    this is the default location for older versions; see INT 50"DESQview"
  295.       for details of interrupt relocation
  296. SeeAlso: INT 50"DESQview",INT 54"DESQview",INT 58"DESQview"
  297. --------H-51---------------------------------
  298. INT 51 - IRQ1 relocated by IBM 3278 emulation control program
  299. SeeAlso: INT 50"IBM 3278",INT 54"IBM 3278"
  300. --------H-51---------------------------------
  301. INT 51 - IRQ1 relocated by OS/2 v1.x
  302. SeeAlso: INT 50"OS/2",INT 54"OS/2"
  303. --------H-52---------------------------------
  304. INT 52 - IRQ2 relocated by DESQview
  305. Note:    this is the default location for older versions; see INT 50"DESQview"
  306.       for details of interrupt relocation
  307. SeeAlso: INT 50"DESQview",INT 54"DESQview",INT 58"DESQview"
  308. --------H-52---------------------------------
  309. INT 52 - IRQ2 relocated by IBM 3278 emulation control program, OS/2 v1.x
  310. SeeAlso: INT 50"IBM 3278",INT 51"OS/2"
  311. --------H-53---------------------------------
  312. INT 53 - IRQ3 relocated by DESQview
  313. Note:    this is the default location for older versions; see INT 50"DESQview"
  314.       for details of interrupt relocation
  315. SeeAlso: INT 50"DESQview",INT 54"DESQview",INT 58"DESQview"
  316. --------H-53---------------------------------
  317. INT 53 - IRQ3 relocated by IBM 3278 emulation control program, OS/2 v1.x
  318. SeeAlso: INT 50"IBM 3278",INT 51"OS/2"
  319. ----------53---------------------------------
  320. INT 53 - ??? - API
  321.     BX = function
  322.         0000h ???
  323.         AX = ???
  324.         Return: AX = ???
  325.         0004h ???
  326.         0009h ???
  327.         0015h
  328.         AX = ???
  329.         DX = ???
  330.         0017h
  331. Return: ???
  332. Notes:    the installation check consists of looking for the signature "WEBCO"
  333.       immediately prior to the interrupt handler
  334.     the above calls are made by Show Partner F/X v3.6 (see INT 10/AH=53h)
  335. Index:    installation check;unknown|installation check;WEBCO
  336. --------H-54---------------------------------
  337. INT 54 - IRQ4 relocated by DESQview
  338. Note:    this is the default location for older versions; see INT 50"DESQview"
  339.       for details of interrupt relocation
  340. SeeAlso: INT 50"DESQview",INT 58"DESQview"
  341. --------H-54---------------------------------
  342. INT 54 - IRQ4 relocated by IBM 3278 emulation control program, OS/2 v1.x
  343. SeeAlso: INT 51"IBM 3278",INT 51"OS/2"
  344. --------H-55---------------------------------
  345. INT 55 - IRQ5 relocated by DESQview
  346. Note:    this is the default location for older versions; see INT 50"DESQview"
  347.       for details of interrupt relocation
  348. SeeAlso: INT 50"DESQview",INT 58"DESQview"
  349. --------H-55---------------------------------
  350. INT 55 - IRQ5 relocated by IBM 3278 emulation control program, OS/2 v1.x
  351. SeeAlso: INT 51"IBM 3278",INT 51"OS/2"
  352. --------H-56---------------------------------
  353. INT 56 - IRQ6 relocated by DESQview
  354. Note:    this is the default location for older versions; see INT 50"DESQview"
  355.       for details of interrupt relocation
  356. SeeAlso: INT 50"DESQview",INT 58"DESQview"
  357. --------H-56---------------------------------
  358. INT 56 - IRQ6 relocated by IBM 3278 emulation control program, OS/2 v1.x
  359. SeeAlso: INT 51"IBM 3278",INT 51"OS/2"
  360. --------H-57---------------------------------
  361. INT 57 - IRQ7 relocated by DESQview
  362. Note:    this is the default location for older versions; see INT 50"DESQview"
  363.       for details of interrupt relocation
  364. SeeAlso: INT 50"DESQview",INT 58"DESQview"
  365. --------H-57---------------------------------
  366. INT 57 - IRQ7 relocated by IBM 3278 emulation control program, OS/2 v1.x
  367. SeeAlso: INT 51"IBM 3278",INT 51"OS/2"
  368. --------H-58---------------------------------
  369. INT 58 - IRQ8 relocated by DESQview 2.26+
  370. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  371. SeeAlso: INT 50"DESQview",INT 70
  372. --------H-58---------------------------------
  373. INT 58 - IRQ0 relocated by DoubleDOS
  374. SeeAlso: INT 08
  375. --------H-59---------------------------------
  376. INT 59 - IRQ9 relocated by DESQview 2.26+
  377. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  378. SeeAlso: INT 50"DESQview",INT 71
  379. --------H-59---------------------------------
  380. INT 59 - IRQ1 relocated by DoubleDOS
  381. SeeAlso: INT 09
  382. --------V-59---------------------------------
  383. INT 59 - GSS Computer Graphics Interface (GSS*CGI)
  384.     DS:DX -> block of 5 array pointers
  385. Return:    CF set on error
  386.         AX = error code
  387.     CF clear if successful
  388.         AX = return code
  389. Note:    INT 59 is the means by which GSS*CGI language bindings communicate with
  390.       GSS*CGI device drivers and the GSS*CGI device driver controller.
  391.     also used by the IBM Graphic Development Toolkit
  392. --------H-5A---------------------------------
  393. INT 5A - IRQ10 relocated by DESQview 2.26+
  394. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  395. SeeAlso: INT 50"DESQview",INT 72
  396. --------H-5A---------------------------------
  397. INT 5A - IRQ2 relocated by DoubleDOS
  398. SeeAlso: INT 0A
  399. --------N-5A---------------------------------
  400. INT 5A - Cluster adapter BIOS entry address
  401.     ???
  402. --------H-5B---------------------------------
  403. INT 5B - IRQ11 relocated by DESQview 2.26+
  404. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  405. SeeAlso: INT 50"DESQview",INT 73
  406. --------H-5B---------------------------------
  407. INT 5B - IRQ3 relocated by DoubleDOS
  408. SeeAlso: INT 0B
  409. --------N-5B---------------------------------
  410. INT 5B - Used by cluster adapter
  411. --------N-5B---------------------------------
  412. INT 5B - AT&T Starlan Extended NetBIOS (variable length names)
  413.     ES:BX -> Network Control Block (see below)
  414. Return: AL = status (see INT 5C)
  415. SeeAlso: INT 5C
  416.  
  417. Format of Network Control Block
  418. Offset    Size    Description
  419.  00h    BYTE    ncb_command (see below)
  420.  01h    BYTE    ncb_retcode
  421.  02h    BYTE    ncb_lsn
  422.  03h    BYTE    ncb_num
  423.  04h    DWORD    -> ncb_buffer
  424.  08h    WORD    ncb_length
  425.  0Ah 16 BYTEs    ncb_callname
  426.  1Ah 16 BYTEs    ncb_name
  427.  2Ah    BYTE    ncb_rto
  428.  2Bh    BYTE    ncb_sto
  429.  2Ch    DWORD    -> ncb_post    /* int (far *ncb_post)(); */
  430.  30h    BYTE    ncb_lana_num
  431.  31h    BYTE    ncb_cmd_cplt
  432.  32h    DWORD    -> ncb_vname
  433.  36h    BYTE    ncb_vnamelen
  434.  37h  9 BYTEs    ncb_reserve
  435. Note: fields 00h-31h are the same as for a standard NetBIOS NCB (see INT 5C)
  436.  
  437. Values for ncb_command field same as for INT 5C, except
  438.     70h    send net Break
  439. --------N-5B---------------------------------
  440. INT 5B - Microsoft Network Transport Layer Interface
  441. Note:    used by MS-NET for executing network commands
  442. SeeAlso: INT 5C"NetBIOS"
  443. --------N-5B---------------------------------
  444. INT 5B - used by Alloy NTNX
  445. --------N-5B---------------------------------
  446. INT 5B - ISOLAN Multi Protocol Software
  447.     ES:BX -> Transfer Control Block
  448. Return: AL - status
  449. Note:    this software interface allows multiple protocols/software packages
  450.       to access a BICC 411x network card
  451.  
  452. Format of Transfer Control Block:
  453. Offset    Type    Description
  454.  00h    BYTE    command code
  455.         B3h Status
  456.         F2h Activate
  457.         F3h Deactivate
  458.         F4h Send Data
  459.  01h    BYTE    command identity
  460.  02h    BYTE    virtual circuit ID
  461.  03h    WORD    buffer length
  462.  05h    DWORD    buffer pointer
  463.  09h    BYTE    expedited data flag
  464.  0Ah    BYTE    cancelable flag
  465.  0Bh 16 BYTEs    local network address
  466.  1Bh 16 BYTEs    remote network address
  467.  2Bh    DWORD    asynchronous notification routine
  468.  30h    DWORD    local network number
  469.  34h    DWORD    remote network number
  470.  38h    BYTE    call timeout
  471.  39h    BYTE    not used
  472.  3Ah  8 BYTEs    reserved
  473.  42h    BYTE    command code extension
  474.  43h    WORD    Blue Book MAC type
  475. ----------5B5254DL04-------------------------
  476. INT 5B U - SitBack v3.02R - GET ???
  477.     AX = 5254h
  478.     DL = 04h
  479. Return: ES:BX -> ??? in resident portion
  480. Program: SitBack is a background file backup utility by SitBack Technologies,
  481.       Inc. which initiates backups whenever the system is idle
  482. SeeAlso: AX=8485h/DL=71h,AX=8485h/DL=72h
  483. ----------5B8485DL70-------------------------
  484. INT 5B U - SitBack v3.02R - INSTALLATION CHECK
  485.     AX = 8485h
  486.     DL = 70h
  487. Return: CX = 8485h if installed
  488.         DX:AX -> ??? (configuration data?)
  489. Program: SitBack is a background file backup utility by SitBack Technologies,
  490.       Inc. which initiates backups whenever the system is idle
  491. SeeAlso: AX=5254h/DL=04h,AX=8485h/DL=78h
  492. ----------5B8485DL71-------------------------
  493. INT 5B U - SitBack v3.02R - SET ??? FLAG AND GET ??? ADDRESS
  494.     AX = 8485h
  495.     DL = 71h
  496. Return: ES:BX -> FAR entry point to ???
  497. Note:    the flag which is modified is located at the address returned by
  498.        AX=5254h/DL=04h
  499. SeeAlso: AX=8485h/DL=72h
  500. ----------5B8485DL72-------------------------
  501. INT 5B U - SitBack v3.02R - CLEAR ??? FLAG
  502.     AX = 8485h
  503.     DL = 72h
  504. Note:    the flag which is modified is located at the address returned by
  505.        AX=5254h/DL=04h
  506. SeeAlso: AX=8485h/DL=71h
  507. ----------5B8485DL73-------------------------
  508. INT 5B U - SitBack v3.02R - ???
  509.     AX = 8485h
  510.     DL = 73h
  511.     ???
  512. Return: ???
  513. ----------5B8485DL74-------------------------
  514. INT 5B U - SitBack v3.02R - ???
  515.     AX = 8485h
  516.     DL = 74h
  517.     ???
  518. Return: ???
  519. ----------5B8485DL75-------------------------
  520. INT 5B U - SitBack v3.02R - ???
  521.     AX = 8485h
  522.     DL = 75h
  523.     CX = ???
  524. Return: ???
  525. SeeAlso: AX=8485h/DL=76h
  526. ----------5B8485DL76-------------------------
  527. INT 5B U - SitBack v3.02R - ???
  528.     AX = 8485h
  529.     DL = 76h
  530.     CX = ???
  531. Return: ???
  532. Note:    conditionally calls the code for AX=8485h/DL=75h
  533. SeeAlso: AX=8485h/DL=75h
  534. ----------5B8485DL77-------------------------
  535. INT 5B U - SitBack v3.02R - SET ??? FLAG
  536.     AX = 8485h
  537.     DL = 77h
  538. ----------5B8485DL78-------------------------
  539. INT 5B U - SitBack v3.02R - GET RESIDENT DATA SEGMENT
  540.     AX = 8485h
  541.     DL = 78h
  542. Return: CX = 5342h if supported
  543.         ES = AX = segment of TSR data
  544. SeeAlso: AX=8485h/DL=70h,AX=8485h/DL=79h
  545. ----------5B8485DL79-------------------------
  546. INT 5B U - SitBack v3.02R - GET DTA
  547.     AX = 8485h
  548.     DL = 79h
  549. Return: CX = 5342h if supported
  550.         ES:BX -> DTA set by last INT 21/AH=1Ah
  551. Note:    this function is provided by SBOS.EXE rather than SB.EXE
  552. SeeAlso: INT 21/AH=1Ah
  553. ----------5B8485DL7A-------------------------
  554. INT 5B U - SitBack v3.02R - TOGGLE ???
  555.     AX = 8485h
  556.     DL = 7Ah
  557. Return: CX = 5342h if supported
  558.         AL = new value of ??? (00h or 01h)
  559. --------H-5C---------------------------------
  560. INT 5C - IRQ12 relocated by DESQview 2.26+
  561. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  562. SeeAlso: INT 50"DESQview",INT 74
  563. --------H-5C---------------------------------
  564. INT 5C - IRQ4 relocated by DoubleDOS
  565. SeeAlso: INT 0C
  566. --------N-5C---------------------------------
  567. INT 5C - NetBIOS INTERFACE
  568.     ES:BX -> network control block (NCB) (see below)
  569. Return: AL = status (see below)
  570. Note:    Sytek PCnet card uses DMA 3.
  571. SeeAlso: INT 2A/AH=01h,INT 2A/AH=04h,INT 5B
  572.  
  573. Values for NetBIOS status:
  574.  00h successful
  575.  01h bad buffer size
  576.  03h invalid NETBIOS command
  577.  05h timeout
  578.  06h receive buffer too small
  579.  07h No-ACK command failed
  580.  08h bad session number
  581.  09h LAN card out of memory
  582.  0Ah session closed
  583.  0Bh command has been cancelled
  584.  0Dh name already exists
  585.  0Eh local name table full
  586.  0Fh name still in use, can't delete
  587.  11h local session table full
  588.  12h remote PC not listening
  589.  13h bad NCB_NUM field
  590.  14h no answer to CALL or no such remote
  591.  15h name not in local name table
  592.  16h duplicate name
  593.  17h bad delete
  594.  18h abnormal end
  595.  19h name error, multiple identical names in use
  596.  1Ah bad packet
  597.  21h network card busy
  598.  22h too many commands queued
  599.  23h bad LAN card number
  600.  24h command finished while cancelling
  601.  26h command can't be cancelled
  602.  30h name defined by another process (OS/2)
  603.  34h NetBIOS environment not defined, must issue reset (OS/2)
  604.  35h required operating system resources exhausted (OS/2)
  605.  36h maximum applications exceeded (OS/2)
  606.  37h no SAPs available for NetBIOS (OS/2)
  607.  38h requested resources not available (OS/2)
  608.  40h Lana System Error
  609.  41h Lana Remote Hot Carrier
  610.  42h Lana Local Hot Carrier
  611.  43h Lana No Carrier Detected
  612.  44h unusual network condition
  613.  45h-4Dh hardware error
  614.  4Eh token ring is broken
  615.  4Fh token ring error
  616.  50h adapter malfunction
  617.  F7h error in explicit INITIALIZE
  618.  F8h error in implicit OPEN
  619.  F9h TOKREUI internal error
  620.  FAh hardware adapter testing
  621.  FBh NetBIOS emulator not found
  622.  FCh OPEN or OPEN_SAP failure
  623.  FDh unexpected adapter closure
  624.  FFh NetBIOS busy (command pending)
  625.  
  626. Format of Network Control Block:
  627. Offset    Size    Description
  628.  00h    BYTE    command code (see below)
  629.  01h    BYTE    return code
  630.  02h    BYTE    local session number (LSN)
  631.  03h    BYTE    "ncb_num" datagram table entry from ADD NAME
  632.  04h    DWORD    -> I/O buffer
  633.  08h    WORD    length of data in buffer
  634.  0Ah 16 BYTEs    remote system to call
  635.  1Ah 16 BYTEs    network name of local machine
  636.  2Ah    BYTE    receive timeout in 1/2 seconds
  637.  2Bh    BYTE    send timeout in 1/2 seconds
  638.  2Ch    DWORD    -> FAR post handler    /* int (far *ncb_post)(); */
  639.  30h    BYTE    network adapter number on which to execute command
  640.         00h-03h IBM NetBIOS specs
  641.         F0h-FFh Eicon NABios interface (see also INT 7B"Eicon")
  642.  31h    BYTE    command completion code (see returned status above)
  643.  32h 14 BYTEs    reserved for network card
  644.  
  645. Values for command code field in NCB (OR with 80h for non-waiting call):
  646.  10h start session with NCB_NAME name (call)
  647.  11h listen for call
  648.  12h end session with NCB_NAME name (hangup)
  649.  14h send data via NCB_LSN
  650.  15h receive data from a session
  651.  16h receive data from any session
  652.  17h send multiple data buffers
  653.  20h send unACKed message (datagram)
  654.  21h receive datagram
  655.  22h send broadcast datagram
  656.  23h receive broadcast datagram
  657.  30h add name to name table
  658.  31h delete name from name table
  659.  32h reset adapter card and tables
  660.  33h get adapter status (see structure "astatus" below)
  661.  34h status of all sessions for name (see structure "sstatus" below)
  662.  35h cancel
  663.  36h add group name to name table
  664.  48h send data and receive data (LAN Manager NETBEUI.DOS)
  665.  70h unlink from IBM remote program (no F0h function)
  666.  71h send data without ACK
  667.  72h send multiple buffers without ACK
  668.  72h UngermannBass Register (conflicts with above function)
  669.  73h UngermannBass SendNmc
  670.  74h UngermannBass Callniu
  671.  75h UngermannBass Calladdr
  672.  76h UngermannBass Listenaddr
  673.  77h UngermannBass SendPkt
  674.  78h find name
  675.  78h UngermannBass RcvPkt (conflicts with above function)
  676.  79h token-ring protocol trace
  677.  79h UngermannBass SendAttn (conflicts with above function)
  678.  7Ah UngermannBass RcvAttn
  679.  7Bh UngermannBass Listenniu
  680.  7Ch UngermannBass RcvRaw
  681.  7Dh UngermannBass SendNmc2
  682.  
  683. Format of structure "name":
  684. Offset    Size    Description
  685.  00h 16 BYTEs "nm_name" symbolic name
  686.  10h    BYTE  "nm_num" number associated with name
  687.  11h    BYTE  nm_status
  688.  
  689. Format of structure "astatus":
  690. Offset    Size    Description
  691.  00h  6 BYTEs as_id
  692.  06h    BYTE  as_jumpers
  693.  07h    BYTE  as_post
  694.  08h    BYTE  as_major
  695.  09h    BYTE  as_minor
  696.  0Ah    WORD  as_interval
  697.  0Ch    WORD  as_crcerr
  698.  0Eh    WORD  as_algerr
  699.  10h    WORD  as_colerr
  700.  12h    WORD  as_abterr
  701.  14h    DWORD as_tcount
  702.  18h    DWORD as_rcount
  703.  1Ch    WORD  as_retran
  704.  1Eh    WORD  as_xresrc
  705.  20h  8 BYTEs as_res0
  706.  28h    WORD  as_ncbfree
  707.  2Ah    WORD  as_ncbmax
  708.  2Ch    WORD  as_ncbx
  709.  2Eh  4 BYTEs as_res1
  710.  32h    WORD  as_sespend
  711.  34h    WORD  as_msp
  712.  36h    WORD  as_sesmax
  713.  38h    WORD  as_bufsize
  714.  3Ah    WORD  as_names
  715.  3Ch 16 name structures     as_name
  716.  
  717. Format of structure "sstatus":
  718. Offset    Size    Description
  719.  00h    BYTE    number of sessions being reported
  720.  01h    BYTE    number of sessions with this name
  721.  02h    BYTE    number of outstanding receive datagrams
  722.  03h    BYTE    number of outstanding ReceiveAnys
  723.  04h    var    session structures (see below)
  724.  
  725. Format of structure "session":
  726. Offset    Size    Description
  727.  00h    BYTE    local session number
  728.  01h    BYTE    state
  729.         01h listen pending
  730.         02h call pending
  731.         03h session established
  732.         04h hangup pending
  733.         05h hangup done
  734.         06h session aborted
  735.  02h 16 BYTEs    local name
  736.  12h 16 BYTEs    remote name
  737.  22h    BYTE    number of outstanding receives
  738.  23h    BYTE    number of outstanding sends/chainsends
  739. --------N-5C---------------------------------
  740. INT 5C - TOPS INTERFACE
  741.     ES:BX -> Network Control Block
  742. Note:    TOPS card uses DMA 1, 3 or none.
  743. --------N-5C---------------------------------
  744. INT 5C - ATALK.SYS - AppleTalk INTERFACE
  745.     DX:BX -> control block (see below)
  746. Return: none
  747. Notes:    this driver can use any interrupt from 5Ch to 70h
  748.     the signature 'AppleTalk' appears 16 bytes prior to the interrupt
  749.       handler; this serves as the installation check
  750. Index:    installation check;ATALK.SYS|installation check;AppleTalk interface
  751.  
  752. Format of AppleTalk control block:
  753. Offset    Size    Description
  754.  00h    WORD    command code
  755.         01h "AT_INIT"        initialize the driver
  756.         02h "AT_KILL"
  757.         03h "AT_GETNETINFO" get current network info incl init status
  758.         04h "AT_GETCLOCKTICKS"
  759.         05h "AT_STARTTIMER"
  760.         06h "AT_RESETTIMER"
  761.         07h "AT_CANCELTIMER"
  762.         10h "LAP_INSTALL"
  763.         11h "LAP_REMOVE"
  764.         12h "LAP_WRITE"
  765.         13h "LAP_READ"
  766.         14h "LAP_CANCEL"
  767.         20h "DDP_OPENSOCKET"
  768.         21h "DDP_CLOSESOCKET"
  769.         22h "DDP_WRITE"
  770.         23h "DDP_READ"
  771.         24h "DDP_CANCEL"
  772.         30h "NBP_REGISTER"
  773.         31h "NBP_REMOVE"
  774.         32h "NBP_LOOKUP"
  775.         33h "NBP_CONFIRM"
  776.         34h "NBP_CANCEL"
  777.         35h "ZIP_GETZONELIST"
  778.         36h "ZIP_GETMYZONE"
  779.         37h "ZIP_TAKEDOWN"
  780.         38h "ZIP_BRINGUP"
  781.         40h "ATP_OPENSOCKET"
  782.         41h "ATP_CLOSESOCKET"
  783.         42h "ATP_SENDREQUEST"
  784.         43h "ATP_GETREQUEST"
  785.         44h "ATP_SENDRESPONSE"
  786.         45h "ATP_ADDRESPONSE"
  787.         46h "ATP_CANCELTRANS"
  788.         47h "ATP_CANCELRESPONSE"
  789.         48h "ATP_CANCELREQUEST"
  790.         50h "ASP_GETPARMS"
  791.         51h "ASP_CLOSESESSION"
  792.         52h "ASP_CANCEL"
  793.         53h "ASP_INIT"
  794.         54h "ASP_KILL"
  795.         55h "ASP_GETSESSION"
  796.         56h "ASP_GETREQUEST"
  797.         57h "ASP_CMDREPLY"
  798.         58h "ASP_WRTCONTINUE"
  799.         59h "ASP_WRTREPLY"
  800.         5Ah "ASP_CLOSEREPLY"
  801.         5Bh "ASP_NEWSTATUS"
  802.         5Ch "ASP_ATTENTION"
  803.         5Dh "ASP_GETSTATUS"
  804.         5Eh "ASP_OPENSESSION"
  805.         5Fh "ASP_COMMAND"
  806.         60h "ASP_WRITE"
  807.         61h "ASP_GETATTENTION"
  808.         70h "PAP_OPEN"
  809.         71h "PAP_CLOSE"
  810.         72h "PAP_READ"
  811.         73h "PAP_WRITE"
  812.         74h "PAP_STATUS"
  813.         75h "PAP_REGNAME"
  814.         76h "PAP_REMNAME"
  815.         77h "PAP_INIT"
  816.         78h "PAP_NEWSTATUS"
  817.         79h "PAP_GETNEXTJOB"
  818.         7Ah "PAP_KILL"
  819.         7Bh "PAP_CANCEL"
  820.         
  821.         or with the following flags
  822.         8000h start command then return
  823.         4000h wait for interrupt service to complete
  824.  02h    WORD    returned status
  825.         0000h success (already initialized if func 01h)
  826.  04h    DWORD    pointer to completion function
  827.  08h    WORD    network number
  828.  0Ah    BYTE    node ID
  829. ---if general func (01h,03h), control block continues:
  830.  0Bh    BYTE    "inf_abridge"
  831.  0Ch    WORD    "inf_config"
  832.  0Eh    DWORD    pointer to buffer
  833.  12h    WORD    buffer size
  834. ---if DDP function (20h-24h), control block continues:
  835.  0Bh    BYTE    "ddp_addr_socket"
  836.  0Ch    BYTE    "ddp_socket"
  837.  0Dh    BYTE    "ddp_type"
  838.  0Eh    DWORD    pointer to buffer
  839.  12h    WORD    buffer size
  840.  14h    BYTE    "ddp_chksum"
  841. ---if Name Binding Protocol (30h-34h), control block continues:
  842.  0Bh    BYTE    "nbp_addr_socket"
  843.  0Ch    WORD    "nbp_toget"
  844.  0Eh    DWORD    pointer to buffer
  845.  12h    WORD    buffer size
  846.  14h    BYTE    "nbp_interval"
  847.  15h    BYTE    "nbp_retry"
  848.  16h    DWORD    "nbp_entptr"
  849. ---if AppleTalk Transaction Protocol (42h), control block continues:
  850.  0Bh    BYTE    "atp_addr_socket"
  851.  0Ch    WORD    "atp_socket"
  852.  0Eh    DWORD    pointer to buffer
  853.  12h    WORD    buffer size
  854.  14h    BYTE    "atp_interval"
  855.  15h    BYTE    "atp_retry"
  856.  16h    BYTE    ATP flags
  857.         bit 5: exactly one transaction
  858.  17h    BYTE    "atp_seqbit"
  859.  18h    BYTE    transaction ID
  860.  19h  4 BYTEs    ATP user bytes
  861.  1Dh    BYTE    number of BDS buffers
  862.  1Eh    BYTE    number of BDS responses
  863.  1Fh    DWORD    pointer to BDS buffers (see below)
  864.  
  865. Format of Name Binding Protocol Name-to-Address binding entries for NBP_LOOKUP:
  866. Offset    Size    Description
  867.  00h    WORD    "tup_address_network"
  868.  02h    BYTE    "tup_address_notid"
  869.  03h    BYTE    "tup_address_socket"
  870.  04h    BYTE    "tup_enum"
  871.  05h 99 BYTEs    name
  872.  
  873. Format of BDS entries:
  874. Offset    Size    Description
  875.  00h    DWORD    pointer to buffer
  876.  04h    WORD    size of buffer
  877.  06h    WORD    BDS data size
  878.  08h  4 BYTEs    "bds_userbytes"
  879. --------N-5C---------------------------------
  880. INT 5C - IBM 802.2 INTERFACE (LLC)
  881.     ES:BX -> CCB (see below)
  882. Return: none
  883.  
  884. Format of CCB:
  885. Offset    Size    Description
  886.  00h    BYTE    adapter
  887.  01h    BYTE    command code
  888.  02h    BYTE    return code
  889.  03h    BYTE    work
  890.  04h    DWORD    pointer to ???
  891.  08h    DWORD    pointer to completion function???
  892.  0Ch    DWORD    pointer to parameters???
  893. --------N-5C---------------------------------
  894. INT 5C - $25 LAN - INSTALLATION CHECK
  895. Notes:    current versions only check whether the vector is 0000h:0000h or not
  896.     future versions are supposed to have the signature "NET" in the three
  897.       bytes preceding the INT 5C handler
  898. --------N-5C04-------------------------------
  899. INT 5C - $25 LAN - CHECK IF CONNECTION ALIVE
  900.     AH = 04h
  901.     AL = COM port (0 = default)
  902.     CX = wait count in character times (should be at least 100)
  903. Return: ZF set if link alive
  904. --------H-5D---------------------------------
  905. INT 5D - IRQ13 relocated by DESQview 2.26+
  906. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  907. SeeAlso: INT 50"DESQview",INT 75
  908. --------H-5D---------------------------------
  909. INT 5D - IRQ5 relocated by DoubleDOS
  910. SeeAlso: INT 0D,INT 5C"DoubleDOS"
  911. --------H-5E---------------------------------
  912. INT 5E - IRQ14 relocated by DESQview 2.26+
  913. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  914. SeeAlso: INT 50"DESQview",INT 76
  915. --------H-5E---------------------------------
  916. INT 5E - IRQ6 relocated by DoubleDOS
  917. SeeAlso: INT 0E,INT 5D"DoubleDOS"
  918. --------H-5F---------------------------------
  919. INT 5F - IRQ15 relocated by DESQview 2.26+
  920. Note:    this is the default, but other INTs may be used (see INT 50"DESQview")
  921. SeeAlso: INT 50"DESQview",INT 77
  922. --------H-5F---------------------------------
  923. INT 5F - IRQ7 relocated by DoubleDOS
  924. SeeAlso: INT 0F,INT 5E"DoubleDOS"
  925. --------b-5F00-------------------------------
  926. INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET VIDEO MODE
  927.     AH = 00h
  928.     AL = video mode
  929.         07h text, system manager compliant
  930.         20h 240x128 mono graphics, system manager compliant
  931.         87h text, not system manager compliant
  932.         A0h 240x128 mono graphics, not system manager compliant
  933. Note:    the defaults after setting the mode to graphics are (0,0) logical
  934.       origin, full-screen clip region, (0,0) pen location, pen color 1,
  935.       pixel replacement FORCE, line type and fill mask all bits set
  936. SeeAlso: INT 0F"HP 95LX",INT 10/AH=00h,INT 15/AX=4DD4h
  937. --------b-5F01-------------------------------
  938. INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET FILL MASK
  939.     AH = 01h
  940.     ES:DI -> 8-byte fill mask
  941. Note:    the fill mask represents an 8x8 pixel box and is repeated as necessary
  942.       when drawing filled rectangles; it is always aligned with the byte
  943.       boundaries of video memory, regardless of the actual boundaries of
  944.       the rectangle
  945. SeeAlso: AH=02h
  946. --------b-5F02-------------------------------
  947. INT 5F - HP 95LX GRAPHICS PRIMITIVES - GET CURRENT GRAPHICS INFORMATION
  948.     AH = 02h
  949.     ES:DI -> graphics info record (see below)
  950. Return: DX:AX -> filled graphics info record (for return to high-level langs)
  951. Format of graphics info record:
  952. Offset    Size    Description
  953.  00h    BYTE    current video mode
  954.  01h    BYTE    default video mode
  955.  02h    WORD    display width in pixels
  956.  04h    WORD    display height in pixels
  957.  06h    WORD    current pen column
  958.  08h    WORD    current pen row
  959.  0Ah    WORD    current line type
  960.  0Ch    WORD    current replacement rule
  961.  0Eh    WORD    current pen color
  962.  10h    WORD    current leftmost column of clip region
  963.  12h    WORD    current rightmost column of clip region
  964.  14h    WORD    current topmost row of clip region
  965.  16h    WORD    current bottommost row of clip region
  966.  18h    WORD    current column of logical origin
  967.  1Ah    WORD    current row of logical origin
  968.  1Ch  8 BYTEs    current fill mask
  969. --------b-5F03-------------------------------
  970. INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET LOGICAL ORIGIN
  971.     AH = 03h
  972.     CX = column
  973.     DX = row
  974. SeeAlso: AH=04h
  975. --------b-5F04-------------------------------
  976. INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET CLIP REGION
  977.     AH = 04h
  978.     CX = left-most column
  979.     DX = top-most row
  980.     SI = right-most column
  981.     DI = bottom-most row
  982. SeeAlso: AH=03h
  983. --------b-5F05-------------------------------
  984. INT 5F - HP 95LX GRAPHICS PRIMITIVES - DRAW RECTANGLE
  985.     AH = 05h
  986.     AL = fill type
  987.         00h outline, using current line type and color
  988.         01h solid, using current color
  989.         02h pattern, using current fill mask and color
  990.     DX,CX = row,column of other corner of rectangle
  991. Note:    the rectangle is drawn starting at the current pen position
  992. SeeAlso: AH=01h,AH=06h,AH=07h
  993. --------b-5F06-------------------------------
  994. INT 5F - HP 95LX GRAPHICS PRIMITIVES - DRAW LINE
  995.     AH = 06h
  996.     DX,CX = row,column of end point
  997. Note:    the line is drawn starting at the current pen position
  998. SeeAlso: AH=05h,AH=07h
  999. --------b-5F07-------------------------------
  1000. INT 5F - HP 95LX GRAPHICS PRIMITIVES - PLOT POINT
  1001.     AH = 07h
  1002.     DX,CX = row,column of point
  1003. Note:    also sets pen position to the specified point
  1004. SeeAlso: AH=06h,AH=08h,AH=0Ch
  1005. --------b-5F08-------------------------------
  1006. INT 5F - HP 95LX GRAPHICS PRIMITIVES - MOVE PEN
  1007.     AH = 08h
  1008.     DX,CX = row,column of new pen position
  1009. SeeAlso: AH=07h,AH=09h
  1010. --------b-5F09-------------------------------
  1011. INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET PEN COLOR
  1012.     AH = 09h
  1013.     AL = new color (00h = white, 01h = black)
  1014. SeeAlso: AH=08h,AH=0Ah,AH=0Bh
  1015. --------b-5F0A-------------------------------
  1016. INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET REPLACEMENT RULE
  1017.     AH = 0Ah
  1018.     AL = new replacement rule
  1019.         00h force
  1020.         01h AND
  1021.         02h OR
  1022.         03h XOR
  1023. SeeAlso: AH=01h,AH=09h,AH=0Bh
  1024. --------b-5F0B-------------------------------
  1025. INT 5F - HP 95LX GRAPHICS PRIMITIVES - SET LINE TYPE
  1026.     AH = 0Bh
  1027.     CX = new line type
  1028. Note:    the line type specifies 16 bits which are repeated over and over while
  1029.       drawing the pixels of a line
  1030. SeeAlso: AH=09h,AH=0Ah
  1031. --------b-5F0C-------------------------------
  1032. INT 5F - HP 95LX GRAPHICS PRIMITIVES - GET PIXEL
  1033.     AH = 0Ch
  1034.     DX,CX = row,column of pixel to read
  1035. Return: AX = pixel color
  1036. SeeAlso: AH=07h
  1037. --------b-5F0D-------------------------------
  1038. INT 5F - HP 95LX GRAPHICS PRIMITIVES - GET IMAGE
  1039.     AH = 0Dh
  1040.     DX,CX = row,column of first corner
  1041.     BP,SI = row,column of second corner
  1042.     ES:DI -> image buffer (see below)
  1043. Note:    the specified corners are included in the saved image
  1044. SeeAlso: AH=0Eh
  1045.  
  1046. Format of image buffer:
  1047. Offset    Size    Description
  1048.  00h    WORD    number of planes (always 01h on HP 95LX)
  1049.  02h    WORD    number of bits/pixel (always 01h on HP 95LX)
  1050.  04h    WORD    image width in pixels
  1051.  06h    WORD    image height in pixels
  1052.  08h  N BYTEs    image data
  1053.         requires (WIDTH+7)/8 * HEIGHT bytes
  1054. --------b-5F0E-------------------------------
  1055. INT 5F - HP 95LX GRAPHICS PRIMITIVES - PUT IMAGE
  1056.     AH = 0Eh
  1057.     AL = replacement rule
  1058.         bit 2: invert image before applying rule
  1059.         bits 1-0:  00 force
  1060.                01 AND
  1061.                10 OR
  1062.                11 XOR
  1063.     DX,CX = row,column of top left corner
  1064.     ES:DI -> image buffer (see AH=0Dh)
  1065. Note:    if the specified image does not fit completely on the screen, this call
  1066.       does nothing
  1067. SeeAlso: AH=0Dh
  1068. --------b-5F0F-------------------------------
  1069. INT 5F - HP 95LX GRAPHICS PRIMITIVES - WRITE TEXT
  1070.     AH = 0Fh
  1071.     AL = rotate flag (if nonzero, rotate 90 degrees counter-clockwise)
  1072.     DX,CX = row,column of first character's top left corner
  1073.     ES:DI -> ASCIZ text
  1074. --------*-60---------------------------------
  1075. INT 60 - reserved for user interrupt
  1076. --------v-60---------------------------------
  1077. INT 60 - VIRUS - "Zero Bug" - INSTALLATION CHECK
  1078.    The "Zero Bug" virus hooks this vector.  It considers itself installed if
  1079.    offset 103h of the handler's segment contains the bytes "ZE"
  1080. SeeAlso: INT 32,INT 44"VIRUS",INT 61"SEMTEX"
  1081. --------d-60---------------------------------
  1082. INT 60 - Adaptec and OMTI controllers - DRIVE 0 DATA
  1083. SeeAlso: INT 61"Adaptec",INT 62"Adaptec",INT 63"Adaptec",INT 64"Adaptec"
  1084. Notes:    this vector stores the first four bytes of the parameter table for
  1085.       hard disk 0
  1086.     these vectors are used by the following Adaptec controllers:
  1087.         ACB 2370 A/B/C, ACB 2372 A/B/C, ACB 2333 A/B, 2322B-8, 2322B-16
  1088.     these vectors are NOT used by the following Adaptec controllers:
  1089.         ACB 2310, ACB 2312, ACB 2320D, ACB 2322D
  1090. --------b-60---------------------------------
  1091. INT 60 - Atari Portfolio - USER INTERFACE FUNCTIONS
  1092.    supplies a number of subfunctions which perform such functions as drawing
  1093.    boxes and menus, and provide input line editing
  1094. SeeAlso: INT 61"Atari"
  1095. ----------60---------------------------------
  1096. INT 60 - Nabbit v2.0 - (NOT A VECTOR!) - INSTALLATION CHECK
  1097. Program: Nabbit is a shareware resident screen data grabber by RSE Inc.
  1098. Note:    Nabbit searches INT 60 through INT 66 for a vector which points at
  1099.       its ASCIZ signature string "iG" (69h 47h 00h), and uses the first
  1100.       free vector in that range it is it not already installed
  1101. ----------60---------------------------------
  1102. INT 60 - PC-IPC API
  1103.     STACK:    DWORD    pointer to parameter block (see below)
  1104. Return: STACK:    unchanged
  1105. Program: PC-IPC is a shareware TSR by Donnelly Software Engineering which
  1106.       allows communication between independent programs
  1107. Note:    INT 60 is the default, any interrupt vector may be used by specifying
  1108.       the vector on the commandline
  1109.  
  1110. Format of parameter block:
  1111. Offset    Size    Description
  1112.  00h    WORD    caller's ID
  1113.  02h    WORD    to ID
  1114.  04h    WORD    command code (see below)
  1115.  06h    WORD    returned status
  1116.         bit 0: unused
  1117.         bit 1: IPC enabled
  1118.         bit 2: IPC installed
  1119.         bit 3: error
  1120.         bit 4: message(s) available
  1121.  08h    WORD    returned error code (see below)
  1122.  0Ah    WORD    size of data
  1123.  0Ch    DWORD    pointer to data buffer
  1124.  
  1125. Values of command code:
  1126.  01h "IPC_CMND_INQUIRE"     inquire current status
  1127.         set status field, writes WORD to data buffer containing free
  1128.           message space in bytes, and sets the "size" field to the
  1129.           number of messages waiting
  1130.  02h "IPC_CMND_ENABLE"    reenable PC-IPC
  1131.         ignored unless called with the same ID that disabled PC-IPC
  1132.  03h "IPC_CMND_DISABLE" disable PC-IPC
  1133.  04h "IPC_CMND_INSTALL" reset PC-IPC
  1134.  06h "IPC_CMND_RDATA"    read data
  1135.         returns first message in data buffer, sets "size" to message
  1136.           length and "to ID" field to sender's ID
  1137.         if no messages available, bit 4 of status is cleared and "size"
  1138.           is set to zero
  1139.  07h "IPC_CMND_SDATA"    send data
  1140.  08h "IPC_CMND_REQID"    require user ID
  1141.         create a new recognized ID and return in "caller's ID" field
  1142.  09h "IPC_CMND_DELID"    cancel user ID
  1143.         delete caller's ID from pool of recognized IDs
  1144.  0Ah "IPC_CMND_RDATAW"    read data, wait if no messages available
  1145.  0Bh "IPC_CMND_VERS"    get PC-IPC version 
  1146.         string representing version returned in data buffer, "size"
  1147.           field set to length of string
  1148.  
  1149. Values for error code:
  1150.  00h    no error
  1151.  01h    invalid command or parameter
  1152.  02h    only process 0 can install/reset IPC
  1153.  03h    process can not install/reset IPC
  1154.  04h    IPC is not enabled
  1155.  05h    process can not disable IPC
  1156.  06h    invalid destination process ID
  1157.  07h    invalid sending process ID
  1158.  08h    invalid data destination
  1159.  09h    no more process IDs available
  1160.  0Ah    can not relinquish that process ID
  1161.  0Bh    message space is full
  1162.  0Ch    IPC is not installed
  1163. --------R-60---------------------------------
  1164. INT 60 - Tangram Arbiter - API
  1165. Notes:    Arbiter may use any interrupt from 60h to 66h (parameterized)
  1166.     identified by string "@ARB_API" immediately following a short jump at
  1167.       the interrupt handler address
  1168.     Arbiter makes a PC disk look like a slow disk over an SNA link to an
  1169.       IBM mainframe
  1170. --------G-60---------------------------------
  1171. INT 60 U - INTRSPY/CMDSPY API
  1172. Program: INTRSPY is a script-driven debugger included with the book
  1173.       _Undocumented_DOS_.
  1174. Notes:    INTRSPY will hook the first available interrupt in the range 60h-67h.
  1175.     The installation check is to 
  1176.       a) determine that the handler is an IRET instruction
  1177.       b) the signature 0Dh "INTRSPY vN.NN" immediately precedes the handler
  1178.       If INTRSPY is installed, the DWORD immediately after the IRET stores
  1179.       its entry point.
  1180. Index:    installation check;INTRSPY
  1181.  
  1182. Call INTRSPY entry point with:
  1183.     AH = function
  1184.         00h ???
  1185.         01h set current directory (for use in reporting)
  1186.         ES:DI -> counted string containing directory name (max 79 char)
  1187.         02h set name of script file
  1188.         ES:DI -> counted string containing file name (max 79 chars)
  1189.         03h set script arguments
  1190.         ES:DI -> counted string containing arguments (max 79 chars)
  1191.         04h get directory set with function 01h
  1192.         ES:DI -> 80-byte buffer for directory name
  1193.         05h get name of script file
  1194.         ES:DI -> 80-byte buffer for script filename
  1195.         06h get script arguments
  1196.         ES:DI -> 80-byte buffer for script arguments
  1197.         07h get ???
  1198.         CL = 00h-15h specifies what to get
  1199.         ES:DI -> WORD to be set with desired value on return
  1200.         08h get ???
  1201.         ES:DI -> WORD to be set with returned value
  1202.         09h get ???
  1203.         ES:DI -> WORD to be set with returned value
  1204.         0Bh store code for interrupt handler???
  1205.         ES:DI -> data
  1206.         CX = number of bytes
  1207.         0Ch ???
  1208.         ES:DI -> ???
  1209.         0Dh get ???
  1210.         ES:DI -> BYTE to be set with returned value
  1211.         0Eh set ??? flag
  1212.         0Fh clear ??? flag
  1213.         10h ???
  1214.         Return: AL = 04h or 05h if failed
  1215.         11h ???
  1216.         Return: AL = 05h if failed
  1217.         12h get ???
  1218.         ES:DI -> buffer
  1219.         Return: CX = number of bytes returned in buffer
  1220.         13h ???
  1221. Return: AH = 00h
  1222.     AL = status
  1223.         00h successful
  1224.         01h invalid function
  1225.         02h ???
  1226.         03h ???
  1227.         04h ???
  1228.         05h ???
  1229. --------u-60---------------------------------
  1230. INT 60 U - PC/370 v4.2 - ???
  1231.     ???
  1232. Return: ???
  1233. Program: PC/370 is an IBM 370 emulator by Donald S. Higgins
  1234. Note:    this is the default interrupt, however the documentation includes
  1235.       instructions for patching the system for another interrupt
  1236. SeeAlso: INT 2F/AX=7F24h,INT DC"PC/370"
  1237. --------r-60---------------------------------
  1238. INT 60 - JPI TopSPEED Modula-2 v1 - PROCEDURE ENTRY TRAP
  1239. SeeAlso: INT 61"JPI"
  1240. --------N-60---------------------------------
  1241. INT 60 - FTP Packet Driver - PC/TCP Packet Driver Specification
  1242. Notes:    The handler for the interrupt will start with a 3-byte jump 
  1243.       instruction, followed by the ASCIZ string "PKT DRVR" (the
  1244.       terminating NUL is significant).
  1245.     To find the interrupt being used by the driver, an application should
  1246.       scan through interrupt vectors 60h to 80h (20h through FFh for
  1247.       v1.10+ of the specification) until it finds one with the "PKT DRVR"
  1248.       string.
  1249.     AH values of 80h to FFh have been reserved for user-defined additions.
  1250. --------b-60----DI0100-----------------------
  1251. INT 60 u - HP 95LX System Manager - WAIT FOR EVENT
  1252.     DI = 0100h
  1253.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1254.         DWORD    pointer to event record (see below)
  1255. Return: event record filled
  1256.     STACK unchanged
  1257. Note:    this call will timeout after about 500ms
  1258. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0101h,INT 61"HP 95LX",INT 62"HP 95LX"
  1259.  
  1260. Format of event record:
  1261. Offset    Size    Description
  1262.  00h    WORD    event type
  1263.         00h no events
  1264.         01h keystroke available
  1265.         02h Ctrl-Break
  1266.         03h reactivation (always follows deactivation event)
  1267.         04h about to deactivate (sleep)
  1268.             next get-event call will not return until reactivated
  1269.         05h forced application termination
  1270.         06h 1-2-3 bridge service request (only given to     1-2-3)
  1271.         07h request to grow
  1272.         08h request to shrink
  1273.         09h application's alarm expired
  1274.         0Ah daily chance to set an alarm
  1275.         0Bh system date or time has been changed
  1276.  02h    WORD    ASCII code page 850 translation of keystroke
  1277.         or grow/shrink amount in paragraphs or 0000h if error
  1278.         or alarm expiration data
  1279.  04h    BYTE    scan code from BIOS
  1280.  05h    BYTE    shift key states at time keystroke is retrieved
  1281.  06h    WORD    LICS translation of keystroke
  1282.  08h    BYTE    function key number (1-2-3 only)
  1283.  09h    DWORD    pointer to 1-2-3 bridge record (see INT 60/DI=0104h)
  1284.         or pointer to time change structure (see below)
  1285. Note:    if the System Manager is waiting the conclusion of a bridge service
  1286.       or grow/shrink call and the event type field is set to FFFFh on
  1287.       entry, the SysMgr will resume
  1288.  
  1289. Format of time change structure:
  1290. Offset    Size    Description
  1291.  00h    WORD    old year
  1292.  02h    BYTE    old month
  1293.  03h    BYTE    old date
  1294.  04h    BYTE    old day
  1295.  05h    BYTE    old hour
  1296.  06h    BYTE    old minute
  1297.  07h    BYTE    old second
  1298.  08h    BYTE    old hundredth of a second
  1299.  09h  9 BYTEs    new time in same format as old time
  1300. --------b-60----DI0101-----------------------
  1301. INT 60 u - HP 95LX System Manager - CHECK FOR EVENT
  1302.     DI = 0101h
  1303.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1304.         DWORD pointer to event record (INT 60/DI=0100h)
  1305. Return: event record filled
  1306.     STACK unchanged
  1307. Note:    this call returns immediately if no event is available
  1308. SeeAlso: INT 60/DI=0100h
  1309. --------b-60----DI0102-----------------------
  1310. INT 60 u - HP 95LX System Manager - "SH_STATUS"
  1311.     DI = 0102h
  1312.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1313. Return: ???
  1314.     STACK unchanged
  1315. --------b-60----DI0104-----------------------
  1316. INT 60 u - HP 95LX System Manager - LOTUS 1-2-3 BRIDGE SERVICES
  1317.     DI = 0104h
  1318.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1319.         DWORD pointer to bridge record (see below)
  1320. Return: ???
  1321.     STACK unchanged
  1322.  
  1323. Format of bridge record:
  1324. Offset    Size    Description
  1325.  00h    WORD    function code
  1326.         00h test
  1327.         01h get range
  1328.         02h "GETRANGE_ADDR"
  1329.         03h "SETRANGE_ADDR"
  1330.         04h "GETRANGE_DATA"
  1331.         05h "SETRANGE_DATA"
  1332.         06h recalculate
  1333.         07h get cursor
  1334.         08h set cursor
  1335.         09h redisplay
  1336.         0Ah cell type
  1337.         0Bh "CALCTYPE"
  1338.  02h    WORD    return code from 1-2-3
  1339.  04h 16 BYTEs    ASCII range name
  1340.  14h    WORD    start column of range
  1341.  16h    WORD    start row of range
  1342.  18h    WORD    end column of range
  1343.  1Ah    WORD    end row of range
  1344.  1Ch    WORD    order in which data is placed in buffer
  1345.  1Eh    WORD    buffer size
  1346.  20h    WORD    offset within bridge record's segment of buffer for cell data
  1347. --------b-60----DI0105-----------------------
  1348. INT 60 u - HP 95LX System Manager - FLUSH KEYBOARD BUFFER
  1349.     DI = 0105h
  1350.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1351. Return: ???
  1352.     STACK unchanged
  1353. --------b-60----DI0106-----------------------
  1354. INT 60 u - HP 95LX System Manager - YIELD CPU
  1355.     DI = 0106h
  1356.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1357.         DWORD pointer to ???
  1358. Return: ???
  1359.     STACK unchanged
  1360. SeeAlso: INT 15/AX=1000h,INT 2F/AX=1680h
  1361. --------b-60----DI0107-----------------------
  1362. INT 60 u - HP 95LX System Manager - "NO_FINI" - REFUSE TERMINATION REQUEST
  1363.     DI = 0107h
  1364.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1365.         DWORD pointer to ???
  1366. Return: ???
  1367.     STACK unchanged
  1368. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  1369. --------b-60----DI0200-----------------------
  1370. INT 60 u - HP 95LX System Manager - SETUP MENU
  1371.     DI = 0200h
  1372.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1373.         DWORD    pointer to menu data (see below)
  1374.         DWORD    pointer to ???
  1375.         WORD    number of items on menu???
  1376.         WORD    ???
  1377.         DWORD    pointer to ???
  1378.         WORD    ???
  1379.         DWORD    pointer to ???
  1380. Return: ???
  1381.     STACK unchanged
  1382. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0201h,INT 60/DI=0203h,INT 60/DI=0205h
  1383.  
  1384. Format of menu data:
  1385. Offset    Size    Description
  1386.  00h 80 BYTEs    first line of menu text
  1387.  50h 80 BYTEs    second line of menu text
  1388.  A0h 80 BYTEs    third line of menu text
  1389.  F0h    WORD    number of keywords
  1390.  F2h    WORD    index of currently highlighted keyword or FFFFh
  1391.  F4h    WORD    single prompt on top line if nonzero
  1392.  F6h 20 BYTEs    which line each of 20 keywords is located on
  1393. 10Ah 20 BYTEs    offset of each of 20 keywords within its line
  1394. 11Eh 20 BYTEs    length of each of 20 keywords
  1395. 132h 20 BYTEs    first letter of each of 20 keywords
  1396. 146h 20 WORDs    offsets of long prompts for each of 20 keywords
  1397. --------b-60----DI0201-----------------------
  1398. INT 60 u - HP 95LX System Manager - DISPLAY OR REDISPLAY MENU
  1399.     DI = 0201h
  1400.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1401.         DWORD    pointer to menu data (see INT 60/DI=0200h)
  1402. Return: ???
  1403.     STACK unchanged
  1404. SeeAlso: INT 60/DI=0200h,INT 60/DI=0202h,INT 60/DI=0206h
  1405. --------b-60----DI0202-----------------------
  1406. INT 60 u - HP 95LX System Manager - "MENU_ON" - ENABLE PROCESSING OF MENU
  1407.     DI = 0202h
  1408.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1409.         DWORD    pointer to menu data (see INT 60/DI=0200h)
  1410. Return: ???
  1411.     STACK unchanged
  1412. SeeAlso: INT 60/DI=0200h,INT 60/DI=0201h,INT 60/DI=0203h
  1413. --------b-60----DI0203-----------------------
  1414. INT 60 u - HP 95LX System Manager - REMOVE MENU
  1415.     DI = 0203h
  1416.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1417.         DWORD    pointer to menu data (see INT 60/DI=0200h)
  1418. Return: ???
  1419.     STACK unchanged
  1420. SeeAlso: INT 60/DI=0201h,INT 60/DI=0202h,INT 60/DI=0204h,INT 60/DI=0208h
  1421. --------b-60----DI0204-----------------------
  1422. INT 60 u - HP 95LX System Manager - LET SYSTEM MANAGER HANDLE MENU KEYSTROKE
  1423.     DI = 0204h
  1424.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1425.         DWORD    pointer to menu data (see INT 60/DI=0200h)
  1426.         WORD    keystroke
  1427.         DWORD    pointer to WORD to receive selection number
  1428. Return: buffer for selection number filled with index of selected menu item or
  1429.       FFFFh if no final selection yet
  1430.     STACK unchanged
  1431. SeeAlso: INT 60/DI=0200h,INT 60/DI=0202h,INT 60/DI=0207h
  1432. --------b-60----DI0205-----------------------
  1433. INT 60 u - HP 95LX System Manager - INITIALIZE FILE SELECTION MENU
  1434.     DI = 0205h
  1435.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1436.         DWORD    pointer to file menu structure (see below)
  1437.         DWORD    pointer to edit record (see INT 60/DI=0400h)
  1438.         DWORD    pointer to wildcard filespec for initial file list
  1439.         WORD    row???
  1440.         WORD    column???
  1441. Return: ???
  1442.     STACK unchanged
  1443. SeeAlso: INT 60/DI=0200h,INT 60/DI=0206h,INT 60/DI=0208h
  1444.  
  1445. Format of file menu structure:
  1446. Offset    Size    Description
  1447.  00h    DWORD    pointer to ASCIZ base directory name
  1448.  04h    DWORD    pointer to ASCIZ file pattern (wildcard filespec)
  1449.  08h    DWORD    pointer to file list workspace, at least 1024 bytes (see below)
  1450.  0Ch    WORD    size of file list workspace in bytes
  1451.  0Eh    WORD    starting row (-3 is topmost, 0 is first non-"reserved" line)
  1452.  10h    WORD    starting column
  1453.  12h    WORD    number of lines
  1454.  14h    WORD    number of columns
  1455.  16h    WORD    number of files displayed on each line
  1456. ---the remaining fields are initialized by the System Manager---
  1457.  18h    WORD    0000h if first edit character, else multiline
  1458.  1Ah    WORD    number of files in file list
  1459.  1Ch    WORD    max files workspace has room for
  1460.  1Eh    WORD    file at top of list
  1461.  20h    WORD    index of file to highlight
  1462.  22h    WORD    index of file to unhighlight
  1463.  24h    WORD    current focus (01h FMENU, 02h EDIT)
  1464.  
  1465. Format of file list workspace entry:
  1466. Offset    Size    Description
  1467.  00h    BYTE    file attributes
  1468.  01h    WORD    file time (see INT 21/AX=5700h)
  1469.  03h    WORD    file date (see INT 21/AX=5700h)
  1470.  05h    DWORD    file size
  1471.  09h 13 BYTEs    ASCIZ filename
  1472. --------b-60----DI0206-----------------------
  1473. INT 60 u - HP 95LX System Manager - DISPLAY/REDISPLAY FILE SELECTION MENU
  1474.     DI = 0206h
  1475.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1476.         DWORD    pointer to file menu structure (see INT 60/DI=0205h)
  1477.         DWORD    pointer to edit record (see INT 60/DI=0400h)
  1478. Return: ???
  1479.     STACK unchanged
  1480. SeeAlso: INT 60/DI=0205h
  1481. --------b-60----DI0207-----------------------
  1482. INT 60 u - HP 95LX System Manager - LET SYSMGR PROCESS FILE SEL MENU KEYSTROKE
  1483.     DI = 0207h
  1484.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1485.         DWORD    pointer to file menu structure (see INT 60/DI=0205h)
  1486.         DWORD    pointer to edit record (see INT 60/DI=0400h)
  1487.         WORD    keystroke
  1488. Return: AX = status
  1489.         0000h keystroke processed, call INT 60/DI=0206h to refresh menu
  1490.         0001h redisplay application area before refreshing menu
  1491.         0002h user confirmed selection, filename is in edit record's buffer
  1492.         0003h user aborted menu
  1493.         FFFBh bad filename
  1494.         FFFCh bad directory
  1495.         FFFDh bad drive
  1496.         FFFEh unknown keystroke
  1497.         FFFFh keystroke known but invalid in current context
  1498.     STACK unchanged
  1499. SeeAlso: INT 60/DI=0205h,INT 60/DI=0208h
  1500. --------b-60----DI0208-----------------------
  1501. INT 60 u - HP 95LX System Manager - REMOVE FILE SELECTION MENU
  1502.     DI = 0208h
  1503.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1504.         DWORD    pointer to file menu structure (see INT 60/DI=0205h)
  1505.         DWORD    pointer to edit record (see INT 60/DI=0400h)
  1506. Return: ???
  1507.     STACK unchanged
  1508. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0205h,INT 60/DI=0206h
  1509. --------b-60----DI0300-----------------------
  1510. INT 60 u - HP 95LX System Manager - DISPLAY STRING
  1511.     DI = 0300h
  1512.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1513.         WORD    starting row (-3 is topmost, 0 is first user line)
  1514.         WORD    starting column
  1515.         DWORD    pointer to string
  1516.         WORD    length of string
  1517.         WORD    display style: 0000h normal, 0001h reverse video
  1518.         WORD    "OSTYLE"
  1519. Return: ???
  1520.     STACK unchanged
  1521. SeeAlso: INT 60/DI=0F03h,INT 60/DI=1005h
  1522. --------b-60----DI0301-----------------------
  1523. INT 60 u - HP 95LX System Manager - CLEAR PORTION OF SCREEN
  1524.     DI = 0301h
  1525.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1526.         WORD    starting row (-3 is topmost, 0 is first user line)
  1527.         WORD    starting column
  1528.         WORD    number of rows
  1529.         WORD    number of columns
  1530. Return: ???
  1531.     STACK unchanged
  1532. SeeAlso: INT 60/DI=0302h,INT 60/DI=1005h
  1533. --------b-60----DI0302-----------------------
  1534. INT 60 u - HP 95LX System Manager - SCROLL PORTION OF SCREEN
  1535.     DI = 0302h
  1536.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1537.         WORD    starting row???
  1538.         WORD    starting column???
  1539.         WORD    height of scroll region???
  1540.         WORD    width of scroll region???
  1541.         WORD    number of lines to scroll region???
  1542. Return: ???
  1543.     STACK unchanged
  1544. SeeAlso: INT 60/DI=0301h
  1545. --------b-60----DI0303-----------------------
  1546. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_XCHG"
  1547.     DI = 0303h
  1548.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1549.         WORD    ???
  1550.         WORD    ???
  1551.         WORD    ???
  1552.         WORD    ???
  1553.         DWORD    pointer to ???
  1554. Return: ???
  1555.     STACK unchanged
  1556. --------b-60----DI0304-----------------------
  1557. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRATTR"
  1558.     DI = 0304h
  1559.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1560.         DWORD    pointer to ???
  1561.         WORD    ???
  1562. Return: ???
  1563.     STACK unchanged
  1564. --------b-60----DI0305-----------------------
  1565. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRRVRT"
  1566.     DI = 0305h
  1567.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1568.         WORD    ???
  1569.         WORD    ???
  1570.         DWORD    pointer to ???
  1571.         WORD    ???
  1572. Return: ???
  1573.     STACK unchanged
  1574. --------b-60----DI0307-----------------------
  1575. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_CHRINV"
  1576.     DI = 0307h
  1577.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1578.         WORD    ???
  1579.         WORD    ???
  1580.         WORD    ???
  1581. Return: ???
  1582.     STACK unchanged
  1583. --------b-60----DI0308-----------------------
  1584. INT 60 u - HP 95LX System Manager - SCREEN SERVICE "M_ROWS_COLS"
  1585.     DI = 0308h
  1586.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1587. Return: ???
  1588.     STACK unchanged
  1589. --------b-60----DI0309-----------------------
  1590. INT 60 u - HP 95LX System Manager - SET SCREEN (VIDEO???) MODE
  1591.     DI = 0309h
  1592.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1593.         WORD    new mode
  1594. Return: ???
  1595.     STACK unchanged
  1596. --------b-60----DI030A-----------------------
  1597. INT 60 u - HP 95LX System Manager - GET SCREEN (VIDEO???) MODE
  1598.     DI = 030Ah
  1599.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1600. Return: ???
  1601.     STACK unchanged
  1602. --------b-60----DI030B-----------------------
  1603. INT 60 u - HP 95LX System Manager - SET CURSOR POSITION
  1604.     DI = 030Bh
  1605.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1606.         WORD    row (-3 is topmost, 0 is first non-reserved line)
  1607.         WORD    column
  1608. Return: ???
  1609.     STACK unchanged
  1610. Note:    cursor is hidden if the specified position is not on the physical
  1611.       display
  1612. SeeAlso: INT 10/AH=02h,INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  1613. --------b-60----DI0400-----------------------
  1614. INT 60 u - HP 95LX System Manager - "EDIT_INIT"
  1615.     DI = 0400h
  1616.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1617.         DWORD    pointer to edit record (see below)
  1618.         DWORD    pointer to string to be edited
  1619.         WORD    initial length of string being edited
  1620.         WORD    maximum length of edited string
  1621.         WORD    row of edit field
  1622.         WORD    leftmost column of edit field
  1623. Return: ???
  1624.     STACK unchanged
  1625.  
  1626. Format of edit record:
  1627. Offset    Size    Description
  1628.  00h    WORD    current length of edit buffer
  1629.  02h    BYTE    flag for special processing on first character
  1630.  03h    BYTE    flags
  1631.         bit 0: tab handling
  1632.  04h    WORD    editing in prompt window?
  1633.  06h    DWORD    pointer to top line of prompt window message
  1634.  0Ah    WORD    length of top line of prompt
  1635.  0Ch    DWORD    pointer to second line of prompt window message
  1636.  10h    WORD    length of second line of prompt
  1637.  12h 80 BYTEs    workspace for editing
  1638.  62h  2 WORDs    line array needed for multi-line editing
  1639.  66h 36 BYTEs    multi-line edit record (see below)
  1640.  8Ah    WORD    displayable columns
  1641.  
  1642. Format of multi-line edit record:
  1643. Offset    Size    Description
  1644.  00h    DWORD    pointer to user-supplied edit buffer
  1645.  04h    WORD    length of edit buffer
  1646.  06h    WORD    current cursor position
  1647.  08h    WORD    starting row of edit area (-3 is topmost, 0 is first user line)
  1648.  0Ah    WORD    starting column of edit area
  1649.  0Ch    WORD    height of edit area
  1650.  0Eh    WORD    width of edit area
  1651.  10h    WORD    current top row (-3 is topmost, 0 is first user line)
  1652.  12h    WORD    number of rows displayable
  1653.  14h    BYTE    cursor column
  1654.  15h    BYTE    01h if buffer has been modified
  1655.  16h    BYTE    first displayable column (ticker fields only)
  1656.  17h    BYTE    01h if wordwrap enabled, FFh if ticker field
  1657.  18h    DWORD    pointer to array of line starts (at least one bigger than edit
  1658.           area is high)
  1659.  1Ch    BYTE    currently marking?
  1660.  1Dh    BYTE    flag
  1661.  1Eh    WORD    offset of mark start
  1662.  20h    WORD    offset of mark end (inclusive)
  1663.  22h    WORD    displayable columns
  1664. --------b-60----DI0401-----------------------
  1665. INT 60 u - HP 95LX System Manager - EDIT ON TOP LINE
  1666.     DI = 0401h
  1667.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1668.         DWORD    pointer to edit record (see INT 60/DI=0400h)
  1669.         DWORD    pointer to string to edit
  1670.         WORD    initial length of string being edited
  1671.         WORD    maximum length of edited string
  1672.         DWORD    pointer to first line of prompt
  1673.         WORD    length of first line
  1674.         DWORD    pointer to second line of prompt
  1675.         WORD    length of second line
  1676. Return: ???
  1677.     STACK unchanged
  1678. --------b-60----DI0402-----------------------
  1679. INT 60 u - HP 95LX System Manager - DISPLAY OR REDISPLAY EDIT FIELD
  1680.     DI = 0402h
  1681.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1682.         DWORD    pointer to edit record (see INT 60/DI=0400h)
  1683. Return: ???
  1684.     STACK unchanged
  1685. --------b-60----DI0403-----------------------
  1686. INT 60 u - HP 95LX System Manager - LET SYSTEM MANAGER PROCESS EDITING KEYSTROK
  1687.     DI = 0403h
  1688.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1689.         DWORD    pointer to edit record (see INT 60/DI=0400h)
  1690.         WORD    keystroke
  1691.         DWORD    pointer to WORD buffer for result code
  1692. Return: result code buffer filled with 0001h if editing complete
  1693.     STACK unchanged
  1694. --------b-60----DI0404-----------------------
  1695. INT 60 u - HP 95LX System Manager - "MDIT_INI"
  1696.     DI = 0404h
  1697.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1698.         DWORD    pointer to ???
  1699.         WORD    ???
  1700.         WORD    ???
  1701.         WORD    ???
  1702.         WORD    ???
  1703.         DWORD    pointer to ???
  1704.         WORD    ???
  1705.         WORD    ???
  1706.         WORD    ???
  1707.         DWORD    pointer to ???
  1708. Return: ???
  1709.     STACK unchanged
  1710. --------b-60----DI0405-----------------------
  1711. INT 60 u - HP 95LX System Manager - "MDIT_DIS"
  1712.     DI = 0405h
  1713.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1714.         DWORD    pointer to ???
  1715. Return: ???
  1716.     STACK unchanged
  1717. --------b-60----DI0406-----------------------
  1718. INT 60 u - HP 95LX System Manager - "MDIT_KEY"
  1719.     DI = 0406h
  1720.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1721.         DWORD    pointer to ???
  1722.         WORD    ???
  1723. Return: ???
  1724.     STACK unchanged
  1725. --------b-60----DI0407-----------------------
  1726. INT 60 u - HP 95LX System Manager - "MDIT_FIL"
  1727.     DI = 0407h
  1728.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1729.         DWORD    pointer to ???
  1730.         DWORD    pointer to ???
  1731. Return: ???
  1732.     STACK unchanged
  1733. --------b-60----DI0408-----------------------
  1734. INT 60 u - HP 95LX System Manager - "MDIT_MARK"
  1735.     DI = 0408h
  1736.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1737.         DWORD    pointer to ???
  1738. Return: ???
  1739.     STACK unchanged
  1740. --------b-60----DI0409-----------------------
  1741. INT 60 u - HP 95LX System Manager - "MDIT_UNMARK"
  1742.     DI = 0409h
  1743.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1744.         DWORD    pointer to ???
  1745. Return: ???
  1746.     STACK unchanged
  1747. --------b-60----DI040A-----------------------
  1748. INT 60 u - HP 95LX System Manager - "MDIT_CUTMARK"
  1749.     DI = 040Ah
  1750.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1751.         DWORD    pointer to ???
  1752. Return: ???
  1753.     STACK unchanged
  1754. --------b-60----DI040B-----------------------
  1755. INT 60 u - HP 95LX System Manager - "MDIT_INS_STR"
  1756.     DI = 040Bh
  1757.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1758.         DWORD    pointer to ???
  1759.         DWORD    pointer to ???
  1760.         WORD    ???
  1761. Return: ???
  1762.     STACK unchanged
  1763. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  1764. --------b-60----DI0500-----------------------
  1765. INT 60 u - HP 95LX System Manager - OPEN FILE
  1766.     DI = 0500h
  1767.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1768.         DWORD    pointer to file state record (see below)
  1769.         DWORD    pointer to filename
  1770.         WORD    length of filename
  1771.         WORD    ???
  1772.         WORD    suppress buffering if nonzero
  1773. Return: AX = status
  1774.     STACK unchanged
  1775. SeeAlso: INT 60/DI=0501h,INT 60/DI=0502h,INT 60/DI=0508h
  1776.  
  1777. Format of file state record:
  1778. Offset    Size    Description
  1779.  00h    WORD    DOS file handle
  1780.  02h    WORD    flags
  1781.         bit 0: buffer contents valid
  1782.         bit 1: buffer is dirty and must be written
  1783.         bit 2: unbuffered I/O
  1784.         bit 3: file is a character device
  1785.  04h    DWORD    current DOS physical file offset (FFFFFFFFh if unknown)
  1786.  08h    DWORD    DOS file offset of start of buffer
  1787.  0Ch    DWORD    effective file offset as seen by caller
  1788.  10h    WORD    number of bytes in file buffer
  1789. ---buffered I/O only---
  1790.  12h 512 BYTEs    file buffer
  1791. --------b-60----DI0501-----------------------
  1792. INT 60 u - HP 95LX System Manager - OPEN FILE IN READ-ONLY MODE
  1793.     DI = 0501h
  1794.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1795.         DWORD    pointer to file state record (see INT 60/DI=0500h)
  1796.         DWORD    pointer to filename
  1797.         WORD    length of filename
  1798.         WORD    ???
  1799.         WORD    suppress buffering if nonzero
  1800. Return: AX = status
  1801.     STACK unchanged
  1802. SeeAlso: INT 60/DI=0500h
  1803. --------b-60----DI0502-----------------------
  1804. INT 60 u - HP 95LX System Manager - CREATE NEW FILE
  1805.     DI = 0502h
  1806.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1807.         DWORD    pointer to file state record (see INT 60/DI=0500h)
  1808.         DWORD    pointer to filename
  1809.         WORD    length of filename
  1810.         WORD    ???
  1811.         WORD    suppress buffering if nonzero
  1812. Return: AX = status
  1813.     STACK unchanged
  1814. SeeAlso: INT 60/DI=0500h,INT 60/DI=0503h
  1815. --------b-60----DI0503-----------------------
  1816. INT 60 u - HP 95LX System Manager - CREATE OR TRUNCATE FILE
  1817.     DI = 0503h
  1818.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1819.         DWORD    pointer to file state record (see INT 60/DI=0500h)
  1820.         DWORD    pointer to filename
  1821.         WORD    length of filename
  1822.         WORD    ???
  1823.         WORD    suppress buffering if nonzero
  1824. Return: AX = status
  1825.     STACK unchanged
  1826. SeeAlso: INT 60/DI=0502h
  1827. --------b-60----DI0504-----------------------
  1828. INT 60 u - HP 95LX System Manager - READ FROM FILE
  1829.     DI = 0504h
  1830.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1831.         DWORD    pointer to file state record (see INT 60/DI=0500h)
  1832.         DWORD    pointer to data buffer
  1833.         WORD    number of bytes to read
  1834.         DWORD    pointer to WORD in which to return actual bytes read
  1835. Return: ???
  1836.     STACK unchanged
  1837. SeeAlso: INT 60/DI=0505h
  1838. --------b-60----DI0505-----------------------
  1839. INT 60 - HP 95LX System Manager - WRITE TO FILE
  1840.     DI = 0505h
  1841.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1842.         DWORD    pointer to file state record (see INT 60/DI=0500h)
  1843.         DWORD    pointer to data
  1844.         WORD    length of data
  1845. Return: AX = status
  1846.     STACK unchanged
  1847. SeeAlso: INT 60/DI=0504h
  1848. --------b-60----DI0506-----------------------
  1849. INT 60 u - HP 95LX System Manager - SET FILE POSITION
  1850.     DI = 0506h
  1851.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1852.         DWORD    pointer to file state record (see INT 60/DI=0500h)
  1853.         WORD    ???
  1854.         WORD    ???
  1855. Return: ???
  1856.     STACK unchanged
  1857. SeeAlso: INT 60/DI=0507h
  1858. --------b-60----DI0507-----------------------
  1859. INT 60 u - HP 95LX System Manager - GET FILE POSITION
  1860.     DI = 0507h "M_TELL"
  1861.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1862.         DWORD    pointer to file state record (see INT 60/DI=0500h)
  1863.         DWORD    pointer to DWORD buffer for file position???
  1864. Return: ???
  1865.     STACK unchanged
  1866. SeeAlso: INT 60/DI=0506h
  1867. --------b-60----DI0508-----------------------
  1868. INT 60 u - HP 95LX System Manager - CLOSE FILE
  1869.     DI = 0508h
  1870.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1871.         DWORD    pointer to file state record (see INT 60/DI=0500h)
  1872. Return: ???
  1873.     STACK unchanged
  1874. SeeAlso: INT 60/DI=0500h
  1875. --------b-60----DI0509-----------------------
  1876. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_SETPAT"
  1877.     DI = 0509h
  1878.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1879.         DWORD    pointer to ???
  1880.         DWORD    pointer to ???
  1881.         WORD    ???
  1882.         WORD    ???
  1883. Return: ???
  1884.     STACK unchanged
  1885. --------b-60----DI050A-----------------------
  1886. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_MATCH"
  1887.     DI = 050Ah
  1888.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1889.         DWORD    pointer to ???
  1890.         DWORD    pointer to ???
  1891. Return: ???
  1892.     STACK unchanged
  1893.  
  1894. Format of pattern match control block:
  1895. Offset    Size    Description
  1896.  00h 43 BYTEs    FindFirst data block (see INT 21/AH=4Eh)
  1897.  2Bh 80 BYTEs    full path name
  1898.  7Bh    BYTE    offset of last component of filename
  1899.  7Ch    BYTE    DOS function number (4Eh or 4Fh)
  1900. --------b-60----DI050B-----------------------
  1901. INT 60 u - HP 95LX System Manager - IDENTIFY FILENAME REFERENT
  1902.     DI = 050Bh
  1903.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1904.         DWORD    pointer to ???
  1905.         WORD    ???
  1906.         WORD    ???
  1907.         DWORD    pointer to ???
  1908. Return: ???
  1909.     STACK unchanged
  1910.  
  1911. Values returned:
  1912.  0000h nonexistent
  1913.  0001h file
  1914.  0002h directory
  1915.  0003h character device
  1916. --------b-60----DI050C-----------------------
  1917. INT 60 u - HP 95LX System Manager - DELETE FILE
  1918.     DI = 050Ch "M_DELETE"
  1919.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1920.         DWORD    pointer to ???
  1921.         WORD    ???
  1922.         WORD    ???
  1923. Return: ???
  1924.     STACK unchanged
  1925. --------b-60----DI050D-----------------------
  1926. INT 60 u - HP 95LX System Manager - RENAME FILE
  1927.     DI = 050Dh
  1928.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1929.         DWORD    pointer to ???
  1930.         WORD    ???
  1931.         WORD    ???
  1932.         DWORD    pointer to ???
  1933.         WORD    ???
  1934.         WORD    ???
  1935. Return: ???
  1936.     STACK unchanged
  1937. --------b-60----DI050E-----------------------
  1938. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GETDIR"
  1939.     DI = 050Eh
  1940.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1941.         WORD    ???
  1942.         DWORD    pointer to ???
  1943.         DWORD    pointer to ???
  1944. Return: ???
  1945.     STACK unchanged
  1946. --------b-60----DI050F-----------------------
  1947. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_SETDIR"
  1948.     DI = 050Fh
  1949.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1950.         DWORD    pointer to ???
  1951.         WORD    ???
  1952. Return: ???
  1953.     STACK unchanged
  1954. --------b-60----DI0510-----------------------
  1955. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_VOLUME"
  1956.     DI = 0510h
  1957.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1958.         DWORD    pointer to ???
  1959.         DWORD    pointer to ???
  1960. Return: ???
  1961.     STACK unchanged
  1962. --------b-60----DI0511-----------------------
  1963. INT 60 u - HP 95LX System Manager - MAKE A SUBDIRECTORY
  1964.     DI = 0511h
  1965.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1966.         DWORD    pointer to ???
  1967.         WORD    ???
  1968.         WORD    ???
  1969. Return: ???
  1970.     STACK unchanged
  1971. --------b-60----DI0512-----------------------
  1972. INT 60 u - HP 95LX System Manager - REMOVE A SUBDIRECTORY
  1973.     DI = 0512h
  1974.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1975.         DWORD    pointer to ???
  1976.         WORD    ???
  1977.         WORD    ???
  1978. Return: ???
  1979.     STACK unchanged
  1980. --------b-60----DI0513-----------------------
  1981. INT 60 u - HP 95LX System Manager - GET DEFAULT DRIVE
  1982.     DI = 0513h
  1983.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1984.         DWORD    pointer to ??? buffer for current drive
  1985. Return: ???
  1986.     STACK unchanged
  1987. --------b-60----DI0514-----------------------
  1988. INT 60 u - HP 95LX System Manager - SET DEFAULT DRIVE
  1989.     DI = 0514h
  1990.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1991.         WORD    new drive
  1992. Return: ???
  1993.     STACK unchanged
  1994. --------b-60----DI0515-----------------------
  1995. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_FDATE"
  1996.     DI = 0515h
  1997.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  1998.         DWORD    pointer to ???
  1999.         DWORD    pointer to ???
  2000. Return: ???
  2001.     STACK unchanged
  2002. --------b-60----DI0516-----------------------
  2003. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GET_SYSDIR"
  2004.     DI = 0516h
  2005.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2006.         DWORD    pointer to ???
  2007. Return: ???
  2008.     STACK unchanged
  2009. --------b-60----DI0517-----------------------
  2010. INT 60 u - HP 95LX System Manager - GET FILE ATTRIBUTES
  2011.     DI = 0517h
  2012.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2013.         DWORD    pointer to ???
  2014.         WORD    ???
  2015.         WORD    ???
  2016.         DWORD    pointer to ??? buffer for file's attributes???
  2017. Return: ???
  2018.     STACK unchanged
  2019. --------b-60----DI0518-----------------------
  2020. INT 60 u - HP 95LX System Manager - SET FILE ATTRIBUTES
  2021.     DI = 0518h
  2022.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2023.         DWORD    pointer to ???
  2024.         WORD    ???
  2025.         WORD    ???
  2026.         WORD    new attributes???
  2027. Return: ???
  2028.     STACK unchanged
  2029. --------b-60----DI0519-----------------------
  2030. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_COMMON_OPEN"
  2031.     DI = 0519h
  2032.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2033.         DWORD    pointer to ???
  2034.         DWORD    pointer to ???
  2035.         WORD    ???
  2036.         WORD    ???
  2037.         WORD    ???
  2038.         WORD    ???
  2039.         WORD    ???
  2040. Return: ???
  2041.     STACK unchanged
  2042. --------b-60----DI051A-----------------------
  2043. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_COPYDT"
  2044.     DI = 051Ah
  2045.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2046.         DWORD    pointer to ???
  2047.         DWORD    pointer to ???
  2048. Return: ???
  2049.     STACK unchanged
  2050. --------b-60----DI051B-----------------------
  2051. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_GETFDT"
  2052.     DI = 051Bh
  2053.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2054.         DWORD    pointer to ???
  2055.         DWORD    pointer to ???
  2056. Return: ???
  2057.     STACK unchanged
  2058. --------b-60----DI051C-----------------------
  2059. INT 60 u - HP 95LX System Manager - FILE SERVICE "M_PUTFDT"
  2060.     DI = 051Ch
  2061.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2062.         DWORD    pointer to ???
  2063.         WORD    ???
  2064. Return: ???
  2065.     STACK unchanged
  2066. --------b-60----DI0600-----------------------
  2067. INT 60 u - HP 95LX System Manager - PROCESS INITIALIZING
  2068.     DI = 0600h
  2069.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2070. Return: ???
  2071.     STACK unchanged
  2072. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0601h,INT 61"HP 95LX"
  2073. --------b-60----DI0601-----------------------
  2074. INT 60 u - HP 95LX System Manager - PROCESS TERMINATION
  2075.     DI = 0601h
  2076.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2077. Return: never
  2078.     STACK unchanged
  2079. SeeAlso: INT 21/AH=4Ch,INT 60/DI=0600h
  2080. --------b-60----DI0602-----------------------
  2081. INT 60 u - HP 95LX System Manager - "M_LOCK" - PREVENT TASK SWITCHES
  2082.     DI = 0602h
  2083.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2084. Return: ???
  2085.     STACK unchanged
  2086. SeeAlso: INT 15/AX=101Bh,INT 60/DI=0603h
  2087. --------b-60----DI0603-----------------------
  2088. INT 60 u - HP 95LX System Manager - "M_UNLOCK" - ALLOW TASK SWITCHES
  2089.     DI = 0603h
  2090.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2091. Return: ???
  2092.     STACK unchanged
  2093. SeeAlso: INT 15/AX=101Ch,INT 60/DI=0602h
  2094. --------b-60----DI0604-----------------------
  2095. INT 60 u - HP 95LX System Manager - "M_SPAWN"
  2096.     DI = 0604h
  2097.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2098.         DWORD    pointer to ???
  2099.         WORD    ???
  2100.         WORD    ???
  2101.         DWORD    pointer to ???
  2102. Return: ???
  2103.     STACK unchanged
  2104. --------b-60----DI0605-----------------------
  2105. INT 60 u - HP 95LX System Manager - "M_APPCOUNT"
  2106.     DI = 0605h
  2107.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2108. Return: ???
  2109.     STACK unchanged
  2110. --------b-60----DI0606-----------------------
  2111. INT 60 u - HP 95LX System Manager - "M_REBOOT"
  2112.     DI = 0606h
  2113.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2114. Return: ???
  2115.     STACK unchanged
  2116. --------b-60----DI0607-----------------------
  2117. INT 60 u - HP 95LX System Manager - "M_SPAWNARG"
  2118.     DI = 0607h
  2119.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2120.         DWORD    pointer to ???
  2121.         WORD    ???
  2122.         DWORD    pointer to ???
  2123.         WORD    ???
  2124. Return: ???
  2125.     STACK unchanged
  2126. --------b-60----DI0608-----------------------
  2127. INT 60 u - HP 95LX System Manager - "M_REG_APP_NAME"
  2128.     DI = 0608h
  2129.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2130.         DWORD    pointer to ???
  2131. Return: ???
  2132.     STACK unchanged
  2133. --------b-60----DI0609-----------------------
  2134. INT 60 u - HP 95LX System Manager - "M_APP_NAME"
  2135.     DI = 0609h
  2136.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2137.         DWORD    pointer to ???
  2138. Return: DX:AX -> ???
  2139.     STACK unchanged
  2140. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  2141. --------b-60----DI0700-----------------------
  2142. INT 60 u - HP 95LX System Manager - OPEN CLIPBOARD
  2143.     DI = 0700h
  2144.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2145. Return: ???
  2146.     STACK unchanged
  2147. SeeAlso: INT 60/DI=0701h,INT 60/DI=0702h
  2148.  
  2149. Values for error code:
  2150.  0000h    successful
  2151.  FFF8h transfer request out of bounds
  2152.  FFF9h no such representation
  2153.  FFFAh no representation open
  2154.  FFFBh a representation is already open
  2155.  FFFCh representation already exists
  2156.  FFFDh heap allocation failure
  2157.  FFFEh clipboard not open
  2158.  FFFFh clipboard access denied
  2159. --------b-60----DI0701-----------------------
  2160. INT 60 u - HP 95LX System Manager - CLOSE CLIPBOARD
  2161.     DI = 0701h
  2162.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2163. Return: ???
  2164.     STACK unchanged
  2165. SeeAlso: INT 60/DI=0700h,INT 60/DI=0702h
  2166. --------b-60----DI0702-----------------------
  2167. INT 60 u - HP 95LX System Manager - RESET CLIPBOARD
  2168.     DI = 0702h
  2169.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2170.         DWORD    pointer to ???
  2171. Return: ???
  2172.     STACK unchanged
  2173. SeeAlso: INT 60/DI=0700h
  2174. --------b-60----DI0704-----------------------
  2175. INT 60 u - HP 95LX System Manager - "M_NEW_REP" - START A NEW REPRESENTATION???
  2176.     DI = 0704h
  2177.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2178.         DWORD    pointer to ???
  2179. Return: ???
  2180.     STACK unchanged
  2181. SeeAlso: INT 60/DI=0705h,INT 60/DI=0706h,INT 60/DI=0707h
  2182. --------b-60----DI0705-----------------------
  2183. INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_FINI_REP"
  2184.     DI = 0705h
  2185.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2186. Return: ???
  2187.     STACK unchanged
  2188. SeeAlso: INT 60/DI=0704h
  2189. --------b-60----DI0706-----------------------
  2190. INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_REP_NAME"
  2191.     DI = 0706h
  2192.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2193.         WORD    ???
  2194.         DWORD    pointer to ???
  2195.         DWORD    pointer to ???
  2196. Return: ???
  2197.     STACK unchanged
  2198. SeeAlso: INT 60/DI=0704h,INT 60/DI=0707h
  2199. --------b-60----DI0707-----------------------
  2200. INT 60 u - HP 95LX System Manager - CLIPBOARD SERVICE "M_REP_INDEX"
  2201.     DI = 0707h
  2202.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2203.         DWORD    pointer to ???
  2204.         DWORD    pointer to ???
  2205.         DWORD    pointer to ???
  2206. Return: ???
  2207.     STACK unchanged
  2208. SeeAlso: INT 60/DI=0704h,INT 60/DI=0706h
  2209. --------b-60----DI0708-----------------------
  2210. INT 60 u - HP 95LX System Manager - WRITE TO CLIPBOARD
  2211.     DI = 0708h
  2212.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2213.         DWORD    pointer to data to be written???
  2214.         WORD    length of data???
  2215. Return: ???
  2216.     STACK unchanged
  2217. SeeAlso: INT 60/DI=0709h
  2218. --------b-60----DI0709-----------------------
  2219. INT 60 u - HP 95LX System Manager - READ FROM CLIPBOARD
  2220.     DI = 0709h
  2221.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2222.         WORD    ???
  2223.         WORD    ???
  2224.         DWORD    pointer to buffer for data???
  2225.         WORD    length of buffer???
  2226. Return: ???
  2227.     STACK unchanged
  2228. SeeAlso: INT 60/DI=0708h
  2229. --------b-60----DI0800-----------------------
  2230. INT 60 u - HP 95LX System Manager - BEEP
  2231.     DI = 0800h
  2232.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2233. Return: ???
  2234.     STACK unchanged
  2235. SeeAlso: INT 60/DI=0801h,INT 60/DI=0802h,INT 60/DI=0803h
  2236. --------b-60----DI0801-----------------------
  2237. INT 60 u - HP 95LX System Manager - SOUND SERVICE "M_THUD"
  2238.     DI = 0801h
  2239.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2240. Return: ???
  2241.     STACK unchanged
  2242. SeeAlso: INT 60/DI=0800h,INT 60/DI=0802h,INT 60/DI=0803h
  2243. --------b-60----DI0802-----------------------
  2244. INT 60 u - HP 95LX System Manager - MAKE A SOUND PATTERN
  2245.     DI = 0802h
  2246.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2247.         WORD    pattern number (00h-06h)
  2248. Return: ???
  2249.     STACK unchanged
  2250. SeeAlso: INT 60/DI=0800h,INT 60/DI=0801h,INT 60/DI=0803h
  2251. --------b-60----DI0803-----------------------
  2252. INT 60 u - HP 95LX System Manager - TURN OFF SOUND
  2253.     DI = 0803h
  2254.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2255. Return: ???
  2256.     STACK unchanged
  2257. SeeAlso: INT 60/DI=0800h,INT 60/DI=0801h,INT 60/DI=0802h
  2258. --------b-60----DI0900-----------------------
  2259. INT 60 - HP 95LX System Manager - ALLOCATE REGULAR MEMORY BLOCK
  2260.     DI = 0900h
  2261.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2262.         WORD    size of block in bytes
  2263. Return: AX -> memory block
  2264.     STACK unchanged
  2265. Note:    System Manager-compliant applications are always small-model (64K code,
  2266.       64K data)
  2267. SeeAlso: INT 15/AX=4DD4h,INT 60/DI=0902h,INT 60/DI=0903h
  2268. --------b-60----DI0902-----------------------
  2269. INT 60 u - HP 95LX System Manager - FREE REGULAR MEMORY BLOCK
  2270.     DI = 0902h
  2271.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2272.         WORD    offset of memory block???
  2273. Return: ???
  2274.     STACK unchanged
  2275. Note:    System Manager-compliant applications are always small-model (64K code,
  2276.       64K data)
  2277. SeeAlso: INT 60/DI=0900h,INT 60/DI=0904h
  2278. --------b-60----DI0903-----------------------
  2279. INT 60 u - HP 95LX System Manager - ALLOCATE LARGE MEMORY BLOCK
  2280.     DI = 0903h
  2281.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2282.         WORD    size of block in bytes???
  2283. Return: AX -> memory block???
  2284.     STACK unchanged
  2285. SeeAlso: INT 60/DI=0900h,INT 60/DI=0904h
  2286. --------b-60----DI0904-----------------------
  2287. INT 60 u - HP 95LX System Manager - FREE LARGE MEMORY BLOCK
  2288.     DI = 0904h
  2289.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2290.         WORD    segment of memory block???
  2291. Return: AX -> ???
  2292.     STACK unchanged
  2293. SeeAlso: INT 60/DI=0902h,INT 60/DI=0903h
  2294. --------b-60----DI0B00-----------------------
  2295. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_DTINFO"
  2296.     DI = 0B00h
  2297.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2298.         DWORD    pointer to ???
  2299. Return: ???
  2300.     STACK unchanged
  2301. --------b-60----DI0B01-----------------------
  2302. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GETDTM"
  2303.     DI = 0B01h
  2304.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2305.         DWORD    pointer to ???
  2306. Return: ???
  2307.     STACK unchanged
  2308. --------b-60----DI0B02-----------------------
  2309. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_SETDTM"
  2310.     DI = 0B02h
  2311.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2312.         DWORD    pointer to ???
  2313. Return: ???
  2314.     STACK unchanged
  2315. --------b-60----DI0B03-----------------------
  2316. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_XALARM"
  2317.     DI = 0B03h
  2318.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2319.         WORD    ???
  2320. Return: ???
  2321.     STACK unchanged
  2322. --------b-60----DI0B04-----------------------
  2323. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_ALARM"
  2324.     DI = 0B04h
  2325.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2326.         DWORD    pointer to alarm record???
  2327.         WORD    ???
  2328. Return: ???
  2329.     STACK unchanged
  2330.  
  2331. Format of alarm record:
  2332. Offset    Size    Description
  2333.  00h    BYTE    hour
  2334.  01h    BYTE    minute
  2335.  02h    BYTE    second
  2336.  03h    BYTE    unused padding
  2337.  04h    WORD    rescheduling interval, in seconds
  2338.  06h    BYTE    are seconds significant?
  2339.  07h    BYTE    alarm sound
  2340.  08h 40 BYTEs    message displayed when alarm activates
  2341.  30h    BYTE    task ID of owner
  2342.  31h    BYTE    application's own use for sub-class
  2343.  32h  4 BYTEs    application's own use for private data
  2344. --------b-60----DI0B05-----------------------
  2345. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_START_SW"
  2346.     DI = 0B05h
  2347.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2348.         DWORD    pointer to ???
  2349. Return: ???
  2350.     STACK unchanged
  2351. --------b-60----DI0B06-----------------------
  2352. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_SW"
  2353.     DI = 0B06h
  2354.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2355.         DWORD    pointer to ???
  2356.         DWORD    pointer to ???
  2357.         DWORD    pointer to ???
  2358. Return: ???
  2359.     STACK unchanged
  2360. --------b-60----DI0B07-----------------------
  2361. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_STOP_SW"
  2362.     DI = 0B07h
  2363.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2364.         DWORD    pointer to ???
  2365. Return: ???
  2366.     STACK unchanged
  2367. --------b-60----DI0B08-----------------------
  2368. INT 60 u - HP 95LX System Manager - "M_TELLTIME" - DISPLAY TIMESTAMP
  2369.     DI = 0B08h
  2370.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2371.         WORD    timestamp format (see below)
  2372.         WORD    row (-3 is topmost, 0 is first non-reserved line)
  2373.         WORD    column
  2374. Return: ???
  2375.     STACK unchanged
  2376.  
  2377. Bitfields for timestamp format:
  2378.  bits 1-0 
  2379.     00 date only
  2380.     01 time only
  2381.     10 date and time
  2382.     11 day and date
  2383.  bit 4    supply am/pm
  2384.  bit 5    supply seconds
  2385.  bit 6    show year
  2386.  bit 7    four-digit year
  2387. --------b-60----DI0B09-----------------------
  2388. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_SETTINGS"
  2389.     DI = 0B09h
  2390.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2391.         DWORD    pointer to ???
  2392.         DWORD    pointer to ???
  2393. Return: ???
  2394.     STACK unchanged
  2395. SeeAlso: INT 60/DI=0B0Ah,INT 60/DI=0B0Fh
  2396.  
  2397. Format of system settings:
  2398. Offset    Size    Description
  2399.  00h    WORD    country code
  2400.  02h    WORD    speaker volume (00h-03h or FFh for off)
  2401.  04h    WORD    contrast level (00h-0Fh)
  2402.  06h    WORD    week start (00h Sunday, 01h Monday)
  2403.  08h    WORD    punctuation format
  2404.         code    decimal    arg    thousands
  2405.         00h    .    ,    ,
  2406.         01h    ,    .    .
  2407.         02h    .    ;    ;
  2408.         03h    ,    ;    .
  2409.         04h    .    ,    " "
  2410.         05h    ,    .    " "
  2411.         06h    .    ;    " "
  2412.         07h    ,    ;    " "
  2413.  0Ah    WORD    two-character language code (only 5355h = "US" byte-swapped)
  2414.  0Ch    WORD    current date format (see below)
  2415.  0Eh    WORD    current time format (see below)
  2416.  10h    WORD    collating sequence
  2417.         00h numbers first, 01h letters first, 02h ASCII
  2418.  12h 80 BYTEs    name of picture file
  2419.  62h 30 BYTEs    name
  2420.  80h 30 BYTEs    title
  2421.  9Eh 28 BYTEs    company name
  2422.  BAh    WORD    number of languages
  2423.  BCh  6 BYTEs    available languages
  2424.  C2h 66 BYTEs    language menu
  2425. 104h  2 BYTEs    ASCIZ date separator
  2426. 106h  2 BYTEs    ASCIZ time separator
  2427. 108h    BYTE    date order
  2428. 109h    BYTE    use 24 hour time?
  2429. 10Ah 16 BYTEs    currency string
  2430. 11Ah    WORD    currency string position (00h prefix, 01h suffix)
  2431. 11Ch    WORD    keyboard (see below)
  2432. 11Eh    WORD    printer baud rate
  2433.         00h 300, 01h 1200, 02h 2400, 03h 4800, 04h 9600, 05h 19200
  2434. 120h    WORD    printer driver code
  2435.         00h Epson FX80, 01h HP Laserjet, 02h IBM ProPrinter
  2436. 122h    WORD    printer interface (00h COM1, 01h COM2, 02h IR, 03h LPT1)
  2437. 124h    WORD    system manager interrupt (60h by default)
  2438. 126h    WORD    code page (01h CP850, 02h CP437)
  2439. 128h    WORD    active exit key
  2440. 12Ah    WORD    active menu key
  2441. 12Ch    WORD    active CHAR key toggle
  2442. 12Eh  6 BYTEs    alarm
  2443.  
  2444. Values for current date format:
  2445.  00h dd-mmm-yy
  2446.  01h dd-mmm
  2447.  02h mmm-yy
  2448.  03h mm/dd/yy
  2449.  04h dd/mm/yy
  2450.  05h dd.mm.yy
  2451.  06h yy-mm-dd
  2452.  07h mm/dd
  2453.  08h dd/mm
  2454.  09h dd.mm
  2455.  0Ah mm-dd
  2456.  
  2457. Values for current time format:
  2458.  00h HH:MM:SS am/pm
  2459.  01h HH:MM am/pm
  2460.  02h HH:MM:SS
  2461.  03h HH.MM.SS
  2462.  04h HH,MM,SS
  2463.  05h HHhMMmSSs
  2464.  06h HH:MM
  2465.  07h HH.MM
  2466.  08h HH,MM
  2467.  09h HHhMMm
  2468.  
  2469. Values for keyboard:
  2470.  0001h Belgium
  2471.  0002h French Canadian
  2472.  0004h Denmark
  2473.  0008h Finland
  2474.  0010h French
  2475.  0020h Finland
  2476.  0040h Italy
  2477.  0080h Netherlands
  2478.  0100h Norway
  2479.  0200h Portugal
  2480.  0400h Spain
  2481.  0800h Sweden
  2482.  1000h Swiss French
  2483.  2000h Swiss German
  2484.  4000h United Kingdom
  2485.  8000h USA
  2486. --------b-60----DI0B0A-----------------------
  2487. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_SET_SETTINGS"
  2488.     DI = 0B0Ah
  2489.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2490.         DWORD    pointer to ???
  2491.         DWORD    pointer to ???
  2492. Return: ???
  2493.     STACK unchanged
  2494. SeeAlso: INT 60/DI=0B09h
  2495. --------b-60----DI0B0B-----------------------
  2496. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_START_TIMER"
  2497.     DI = 0B0Bh
  2498.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2499.         DWORD    pointer to ???
  2500. Return: ???
  2501.     STACK unchanged
  2502. SeeAlso: INT 60/DI=0B0Ch,INT 60/DI=0B0Dh
  2503. --------b-60----DI0B0C-----------------------
  2504. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_STOP_TIMER"
  2505.     DI = 0B0Ch
  2506.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2507.         DWORD    pointer to ???
  2508. Return: ???
  2509.     STACK unchanged
  2510. SeeAlso: INT 60/DI=0B0Bh,INT 60/DI=0B0Dh
  2511. --------b-60----DI0B0D-----------------------
  2512. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_GET_TIMER"
  2513.     DI = 0B0Dh
  2514.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2515.         DWORD    pointer to ???
  2516.         DWORD    pointer to ???
  2517.         DWORD    pointer to ???
  2518. Return: ???
  2519.     STACK unchanged
  2520. SeeAlso: INT 60/DI=0B0Bh,INT 60/DI=0B0Ch
  2521. --------b-60----DI0B0E-----------------------
  2522. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_TELL_ANYTIME"
  2523.     DI = 0B0Eh
  2524.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2525.         WORD    ???
  2526.         WORD    ???
  2527.         WORD    ???
  2528.         DWORD    pointer to ???
  2529.         DWORD    pointer to ???
  2530. Return: DX:AX -> ???
  2531.     STACK unchanged
  2532. --------b-60----DI0B0F-----------------------
  2533. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVCE "M_GET_SETTINGS_ADDR"
  2534.     DI = 0B0Fh
  2535.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2536. Return: DX:AX -> system settings record (see INT 60/DI=0B09h)
  2537.     STACK unchanged
  2538. SeeAlso: INT 60/DI=0B09h
  2539. --------b-60----DI0B10-----------------------
  2540. INT 60 u - HP 95LX System Manager - PARSE DATE SPECIFICATION
  2541.     DI = 0B10h
  2542.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2543.         WORD    ???
  2544.         DWORD    pointer to ???
  2545.         DWORD    pointer to ???
  2546. Return: ???
  2547.     STACK unchanged
  2548. --------b-60----DI0B11-----------------------
  2549. INT 60 u - HP 95LX System Manager - PARSE TIME SPECIFICATION
  2550.     DI = 0B11h
  2551.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2552.         WORD    ???
  2553.         DWORD    pointer to ???
  2554.         DWORD    pointer to ???
  2555. Return: ???
  2556.     STACK unchanged
  2557. --------b-60----DI0B12-----------------------
  2558. INT 60 u - HP 95LX System Manager - SET DATE PARSING RULE
  2559.     DI = 0B12h
  2560.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2561.         WORD    new parsing rule (see below)
  2562. Return: ???
  2563.     STACK unchanged
  2564. SeeAlso: INT 60/DI=0B13h
  2565.  
  2566. Values for new parsing rule:
  2567.  01h day-month-year
  2568.  02h month-day-year
  2569.  03h year-month-day
  2570.  04h "DMYO"
  2571.  05h "MDYO"
  2572.  OR with 08h to get any year
  2573. --------b-60----DI0B13-----------------------
  2574. INT 60 u - HP 95LX System Manager - SET TIME PARSING RULE
  2575.     DI = 0B13h
  2576.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2577.         WORD    new parsing rule (see below)
  2578. Return: ???
  2579.     STACK unchanged
  2580. SeeAlso: INT 60/DI=0B12h
  2581.  
  2582. Values for new parsing rule:
  2583.  01h HH:MM:SS (am/pm)
  2584.  02h HH:MM:SS (24hr)
  2585.  03h HHMM:SS (24hr)
  2586.  04h HH:MM:SS.hh (24hr)
  2587.  05h HH:MM (am/pm)
  2588.  06h HH:MM (24hr)
  2589.  07h HHMM (24hr)
  2590. --------b-60----DI0B14-----------------------
  2591. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_POST_TIME"
  2592.     DI = 0B14h
  2593.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2594. Return: ???
  2595.     STACK unchanged
  2596. --------b-60----DI0B15-----------------------
  2597. INT 60 u - HP 95LX System Manager - CLOCK/CALENDAR SERVICE "M_DAY_TRIGGER"
  2598.     DI = 0B15h
  2599.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2600.         WORD    ???
  2601. Return: ???
  2602.     STACK unchanged
  2603. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  2604. --------b-60----DI0C00-----------------------
  2605. INT 60 u - HP 95LX System Manager - OPEN PRINTER
  2606.     DI = 0C00h
  2607.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2608. Return: ???
  2609.     STACK unchanged
  2610. SeeAlso: INT 60/DI=0C01h,INT 60/DI=0C02h,INT 60/DI=0C03h
  2611. --------b-60----DI0C01-----------------------
  2612. INT 60 u - HP 95LX System Manager - CLOSE PRINTER
  2613.     DI = 0C01h
  2614.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2615. Return: ???
  2616.     STACK unchanged
  2617. Note:    relinquishes control of printer
  2618. SeeAlso: INT 60/DI=0C00h
  2619. --------b-60----DI0C02-----------------------
  2620. INT 60 u - HP 95LX System Manager - WRITE TO PRINTER
  2621.     DI = 0C02h
  2622.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2623.         DWORD    pointer to data to be written
  2624.         WORD    length of data
  2625. Return: ???
  2626.     STACK unchanged
  2627. SeeAlso: INT 60/DI=0C00h
  2628. --------b-60----DI0C03-----------------------
  2629. INT 60 u - HP 95LX System Manager - INITIALIZE PRINTER
  2630.     DI = 0C03h
  2631.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2632. Return: ???
  2633.     STACK unchanged
  2634. SeeAlso: INT 60/DI=0C00h
  2635. --------b-60----DI0C04-----------------------
  2636. INT 60 u - HP 95LX System Manager - "M_TRANS_PRINTER"
  2637.     DI = 0C04h
  2638.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2639.         WORD    ???
  2640.         DWORD    pointer to ???
  2641. Return: ???
  2642.     STACK unchanged
  2643. --------b-60----DI0C05-----------------------
  2644. INT 60 u - HP 95LX System Manager - "M_FALL_PRINTER"
  2645.     DI = 0C05h
  2646.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2647.         WORD    ???
  2648.         DWORD    pointer to ???
  2649. Return: ???
  2650.     STACK unchanged
  2651. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  2652. --------b-60----DI0E00-----------------------
  2653. INT 60 u - HP 95LX System Manager - COMMUNICATIONS SERVICE "M_COMM_INIT"
  2654.     DI = 0E00h
  2655.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2656.         DWORD    pointer to ???
  2657. Return: ???
  2658.     STACK unchanged
  2659. SeeAlso: INT 60/DI=0E01h,INT 60/DI=0E02h
  2660.  
  2661. Values for error code:
  2662.  0000h    successful
  2663.  FFF1h "E_BUSY"
  2664.  FFF2h timeout
  2665.  FFF3h framing error
  2666.  FFF4h parity error
  2667.  FFF5h overrun error
  2668.  FFF6h "E_EMPTY"
  2669.  FFF7h "E_CONECT"
  2670.  FFF8h not open
  2671.  FFF9h out of memory
  2672.  FFFAh buffer overflow
  2673.  FFFBh "E_NOFIT"
  2674.  FFFCh unsupported
  2675.  FFFDh "E_IVOPR"
  2676.  FFFEh "E_IVCHN"
  2677.  FFFFh "E_REOPEN"
  2678. --------b-60----DI0E01-----------------------
  2679. INT 60 u - HP 95LX System Manager - OPEN COMMUNICATIONS CHANNEL
  2680.     DI = 0E01h
  2681.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2682.         DWORD    pointer to WORD buffer for comm channel handle
  2683.         WORD    communications line number (01h-04h)
  2684. Return: ???
  2685.     STACK unchanged
  2686. SeeAlso: INT 60/DI=0E00h,INT 60/DI=0E02h
  2687. --------b-60----DI0E02-----------------------
  2688. INT 60 u - HP 95LX System Manager - CLOSE COMMUNICATIONS CHANNEL
  2689.     DI = 0E02h
  2690.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2691.         WORD    comm channel handle
  2692. Return: ???
  2693.     STACK unchanged
  2694. SeeAlso: INT 60/DI=0E00h,INT 60/DI=0E01h
  2695. --------b-60----DI0E03-----------------------
  2696. INT 60 u - HP 95LX System Manager - "M_COMM_GETMDM"
  2697.     DI = 0E03h
  2698.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2699.         WORD    ???
  2700. Return: ???
  2701.     STACK unchanged
  2702. --------b-60----DI0E04-----------------------
  2703. INT 60 u - HP 95LX System Manager - "M_COMM_ANSWER"
  2704.     DI = 0E04h
  2705.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2706.         WORD    ???
  2707.         WORD    ???
  2708. Return: ???
  2709.     STACK unchanged
  2710. --------b-60----DI0E05-----------------------
  2711. INT 60 u - HP 95LX System Manager - "M_COMM_DIAL"
  2712.     DI = 0E05h
  2713.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2714.         WORD    ???
  2715.         DWORD    pointer to ???
  2716. Return: ???
  2717.     STACK unchanged
  2718. --------b-60----DI0E06-----------------------
  2719. INT 60 u - HP 95LX System Manager - RESET COMMUNICATIONS CHANNEL
  2720.     DI = 0E06h
  2721.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2722.         WORD    comm channel handle
  2723.         WORD    reset options (see below)
  2724. Return: ???
  2725.     STACK unchanged
  2726.  
  2727. Bitfields for reset options:
  2728.  bit 0    reset line
  2729.  bit 1    flush transmit buffer
  2730.  bit 2    flush receive buffer
  2731.  bit 3    reset modem
  2732.  bit 4    reset receiver's ^S state
  2733.  bit 5    reset transmitter's ^S state
  2734. --------b-60----DI0E07-----------------------
  2735. INT 60 u - HP 95LX System Manager - "M_COMM_HANGUP"
  2736.     DI = 0E07h
  2737.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2738.         WORD    ???
  2739. Return: ???
  2740.     STACK unchanged
  2741. --------b-60----DI0E08-----------------------
  2742. INT 60 u - HP 95LX System Manager - SEND DATA OVER COMM CHANNEL
  2743.     DI = 0E08h
  2744.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2745.         WORD    comm channel handle
  2746.         DWORD    pointer to data to be sent
  2747.         WORD    option flags
  2748.             bit 0: send partial buffer
  2749.             bit 1: turn on receiver after sending
  2750.         DWORD    pointer to WORD containing length of data to be sent
  2751. Return: length WORD updated to contain number of bytes actually sent???
  2752.     STACK unchanged
  2753. SeeAlso: INT 60/DI=0E09h,INT 60/DI=0E0Bh
  2754. --------b-60----DI0E09-----------------------
  2755. INT 60 u - HP 95LX System Manager - QUERY COMM CHANNEL TRANSMIT QUEUE
  2756.     DI = 0E09h
  2757.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2758.         WORD    ???
  2759.         DWORD    pointer to ??? WORD
  2760.         DWORD    pointer to ??? WORD
  2761. Return: ???
  2762.     STACK unchanged
  2763. SeeAlso: INT 60/DI=0E0Ah
  2764. --------b-60----DI0E0A-----------------------
  2765. INT 60 u - HP 95LX System Manager - QUERY COMM CHANNEL RECEIVE QUEUE
  2766.     DI = 0E0Ah
  2767.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2768.         WORD    comm channel handle
  2769.         DWORD    pointer to WORD to get receive buffer size
  2770.         DWORD    pointer to WORD to get free bytes in receive buffer
  2771. Return: ???
  2772.     STACK unchanged
  2773. SeeAlso: INT 60/DI=0E09h,INT 60/DI=0E0Bh
  2774. --------b-60----DI0E0B-----------------------
  2775. INT 60 u - HP 95LX System Manager - RECEIVE DATA FROM COMM CHANNEL
  2776.     DI = 0E0Bh
  2777.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2778.         WORD    comm channel handle
  2779.         DWORD    pointer to data buffer
  2780.         DWORD    pointer to WORD (input) length of data buffer
  2781.                     (output) number of bytes received
  2782. Return: ???
  2783.     STACK unchanged
  2784. SeeAlso: INT 60/DI=0E08h,INT 60/DI=0E0Ah
  2785. --------b-60----DI0E0C-----------------------
  2786. INT 60 u - HP 95LX System Manager - "M_COMM_HAZCMD"
  2787.     DI = 0E0Ch
  2788.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2789.         WORD    ???
  2790.         DWORD    pointer to ???
  2791.         WORD    ???
  2792. Return: ???
  2793.     STACK unchanged
  2794. --------b-60----DI0E0D-----------------------
  2795. INT 60 u - HP 95LX System Manager - "M_COMM_COMAND"
  2796.     DI = 0E0Dh
  2797.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2798.         WORD    ???
  2799.         DWORD    pointer to ???
  2800.         WORD    ???
  2801. Return: ???
  2802.     STACK unchanged
  2803. --------b-60----DI0E0E-----------------------
  2804. INT 60 u - HP 95LX System Manager - "M_COMM_BREAK"
  2805.     DI = 0E0Eh
  2806.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2807.         WORD    ???
  2808.         WORD    ???
  2809. Return: ???
  2810.     STACK unchanged
  2811. --------b-60----DI0E0F-----------------------
  2812. INT 60 u - HP 95LX System Manager - "M_COMM_FRCXON"
  2813.     DI = 0E0Fh
  2814.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2815.         WORD    ???
  2816. Return: ???
  2817.     STACK unchanged
  2818. --------b-60----DI0E10-----------------------
  2819. INT 60 u - HP 95LX System Manager - "M_COMM_FRCXOF"
  2820.     DI = 0E10h
  2821.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2822.         WORD    ???
  2823. Return: ???
  2824.     STACK unchanged
  2825. --------b-60----DI0E11-----------------------
  2826. INT 60 u - HP 95LX System Manager - "M_COMM_SETDTR"
  2827.     DI = 0E11h
  2828.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2829.         WORD    ???
  2830.         WORD    ???
  2831. Return: ???
  2832.     STACK unchanged
  2833. --------b-60----DI0E12-----------------------
  2834. INT 60 u - HP 95LX System Manager - "M_COMM_XMITNG"
  2835.     DI = 0E12h
  2836.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2837.         WORD    ???
  2838. Return: ???
  2839.     STACK unchanged
  2840. --------b-60----DI0E13-----------------------
  2841. INT 60 u - HP 95LX System Manager - "M_COMM_STATUS"
  2842.     DI = 0E13h
  2843.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2844.         WORD    ???
  2845. Return: ???
  2846.     STACK unchanged
  2847. --------b-60----DI0E14-----------------------
  2848. INT 60 u - HP 95LX System Manager - SET COMMUNICATIONS SETTINGS
  2849.     DI = 0E14h
  2850.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2851.         WORD    comm channel handle
  2852.         DWORD    pointer to comm settings (see below)
  2853. Return: ???
  2854.     STACK unchanged
  2855. SeeAlso: INT 60/DI=0E15h
  2856.  
  2857. Format of comm settings:
  2858. Offset    Size    Description
  2859.  00h    BYTE    dial type ('T' tone, 'P' pulse)
  2860.  01h    WORD    baud rate divisor (115200/baud_rate)
  2861.  03h    BYTE    parity (00h none, 08h odd, 18h even, 28h mark, 38h space)
  2862.  04h    BYTE    stop bits (00h one, 04h two)
  2863.  05h    BYTE    data bits - 5
  2864.  06h    BYTE    software handshake
  2865.         01h none, 02h XOFF/XON, 04h XOFF/any, 08h ENQ/ACK
  2866.  07h    BYTE    infrared (01h off, 02h on)
  2867.  08h    BYTE    duplex (01h half, 02h full)
  2868.  09h    BYTE    echo (01h echo, 02h no echo)
  2869. --------b-60----DI0E15-----------------------
  2870. INT 60 u - HP 95LX System Manager - GET COMMUNICATIONS SETTINGS
  2871.     DI = 0E15h
  2872.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2873.         WORD    ???
  2874.         DWORD    pointer to buffer for settings (see INT 60/DI=0E14h)
  2875. Return: ???
  2876.     STACK unchanged
  2877. SeeAlso: INT 60/DI=0E14h
  2878. --------b-60----DI0E16-----------------------
  2879. INT 60 u - HP 95LX System Manager - "M_COMM_CNFGUR"
  2880.     DI = 0E16h
  2881.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2882.         WORD    ???
  2883.         WORD    ???
  2884.         WORD    ???
  2885.         WORD    ???
  2886.         WORD    ???
  2887. Return: ???
  2888.     STACK unchanged
  2889. --------b-60----DI0E17-----------------------
  2890. INT 60 u - HP 95LX System Manager - "M_COMM_QRYERR"
  2891.     DI = 0E17h
  2892.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2893.         WORD    ???
  2894. Return: ???
  2895.     STACK unchanged
  2896. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  2897. --------b-60----DI0F00-----------------------
  2898. INT 60 u - HP 95LX System Manager - "M_ERRMSG"
  2899.     DI = 0F00h
  2900.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2901.         WORD    ???
  2902.         DWORD    pointer to ???
  2903.         WORD    ???
  2904.         DWORD    pointer to ???
  2905. Return: ???
  2906.     STACK unchanged
  2907. --------b-60----DI0F01-----------------------
  2908. INT 60 u - HP 95LX System Manager - DRAW STANDARD TITLE BOX
  2909.     DI = 0F01h
  2910.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2911.         DWORD    pointer to ASCIZ title string
  2912. Return: ???
  2913.     STACK unchanged
  2914. --------b-60----DI0F02-----------------------
  2915. INT 60 u - HP 95LX System Manager - "SHOWNAME"
  2916.     DI = 0F02h
  2917.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2918.         DWORD    pointer to ???
  2919. Return: ???
  2920.     STACK unchanged
  2921. --------b-60----DI0F03-----------------------
  2922. INT 60 u - HP 95LX System Manager - DISPLAY TWO-LINE MESSAGE BOX
  2923.     DI = 0F03h
  2924.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2925.         DWORD    pointer to first line of message
  2926.         WORD    length of first line
  2927.         DWORD    pointer to second line of message
  2928.         WORD    length of second line
  2929. Return: ???
  2930.     STACK unchanged
  2931. SeeAlso: INT 60/DI=0300h,INT 60/DI=0F04h,INT 60/DI=0F09h
  2932. --------b-60----DI0F04-----------------------
  2933. INT 60 u - HP 95LX System Manager - REMOVE MESSAGE BOX
  2934.     DI = 0F04h
  2935.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2936. Return: ???
  2937.     STACK unchanged
  2938. SeeAlso: INT 60/DI=0F03h,INT 60/DI=0F09h
  2939. --------b-60----DI0F05-----------------------
  2940. INT 60 u - HP 95LX System Manager - "M_COM_TIMER_ADDR"
  2941.     DI = 0F05h
  2942.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2943. Return: DX:AX -> ???
  2944.     STACK unchanged
  2945. --------b-60----DI0F06-----------------------
  2946. INT 60 u - HP 95LX System Manager - "M_COM_TIMER_COUNT_ADDR"
  2947.     DI = 0F06h
  2948.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2949. Return: DX:AX -> ???
  2950.     STACK unchanged
  2951. --------b-60----DI0F07-----------------------
  2952. INT 60 u - HP 95LX System Manager - "M_SYS_RSRC_ADDR"
  2953.     DI = 0F07h
  2954.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2955. Return: DX:AX -> ???
  2956.     STACK unchanged
  2957. --------b-60----DI0F08-----------------------
  2958. INT 60 u - HP 95LX System Manager - "M_BIOS_OUTSTR"
  2959.     DI = 0F08h
  2960.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2961.         ???
  2962. Return: ???
  2963.     STACK unchanged
  2964. --------b-60----DI0F09-----------------------
  2965. INT 60 u - HP 95LX System Manager - DISPLAY THREE-LINE MESSAGE BOX
  2966.     DI = 0F09h
  2967.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2968.         DWORD    pointer to first line of message
  2969.         WORD    length of first line
  2970.         DWORD    pointer to second line of message
  2971.         WORD    length of second line
  2972.         DWORD    pointer to third line of message
  2973.         WORD    length of third line
  2974. Return: ???
  2975.     STACK unchanged
  2976. SeeAlso: INT 60/DI=0F03h,INT 60/DI=0F04h
  2977. --------b-60----DI0F0A-----------------------
  2978. INT 60 u - HP 95LX System Manager - DISABLE MACROS
  2979.     DI = 0F0Ah
  2980.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2981. Return: ???
  2982.     STACK unchanged
  2983. SeeAlso: INT 60/DI=0F0Bh
  2984. --------b-60----DI0F0B-----------------------
  2985. INT 60 u - HP 95LX System Manager - ENABLE MACROS
  2986.     DI = 0F0Bh
  2987.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2988. Return: ???
  2989.     STACK unchanged
  2990. SeeAlso: INT 60/DI=0F0Ah
  2991. --------b-60----DI0F0C-----------------------
  2992. INT 60 u - HP 95LX System Manager - "M_DATE_TIME_SEPS"
  2993.     DI = 0F0Ch
  2994.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  2995.         ???
  2996. Return: ???
  2997.     STACK unchanged
  2998. --------b-60----DI0F0D-----------------------
  2999. INT 60 u - HP 95LX System Manager - "M_FORM_FT"
  3000.     DI = 0F0Dh
  3001.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3002.         DWORD    pointer to ???
  3003. Return: DX:AX -> ???
  3004.     STACK unchanged
  3005. --------b-60----DI0F0E-----------------------
  3006. INT 60 u - HP 95LX System Manager - "M_RAM_IV_INFO"
  3007.     DI = 0F0Eh
  3008.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3009.         DWORD    pointer to ???
  3010. Return: DX:AX -> ???
  3011.     STACK unchanged
  3012. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  3013. --------b-60----DI1005-----------------------
  3014. INT 60 u - HP 95LX System Manager - "M_DIRTY_SYNC" - FORCE SCREEN UPDATE
  3015.     DI = 1005h
  3016.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3017. Return: ???
  3018.     STACK unchanged
  3019. SeeAlso: INT 10/AH=FFh,INT 60/DI=0300h,INT 60/DI=0301h
  3020. --------b-60----DI1200-----------------------
  3021. INT 60 u - HP 95LX System Manager - RESOURCE SERVICE "MAP_RESOURCE_FILE"
  3022.     DI = 1200h
  3023.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3024.         DWORD    pointer to ???
  3025. Return: ???
  3026.     STACK unchanged
  3027. --------b-60----DI1201-----------------------
  3028. INT 60 u - HP 95LX System Manager - "GET_RESOURCE_PTR"
  3029.     DI = 1201h
  3030.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3031.         WORD    ???
  3032. Return: DX:AX -> ???
  3033.     STACK unchanged
  3034. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  3035. --------b-60----DI1202-----------------------
  3036. INT 60 u - HP 95LX System Manager - "GET_RSRC_TAB_PTR"
  3037.     DI = 1202h
  3038.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3039. Return: DX:AX -> ???
  3040.     STACK unchanged
  3041. --------b-60----DI1203-----------------------
  3042. INT 60 u - HP 95LX System Manager - "INIT_SYSGMR_RSRCS"
  3043.     DI = 1203h
  3044.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3045. Return: ???
  3046.     STACK unchanged
  3047. --------b-60----DI1300-----------------------
  3048. INT 60 u - HP 95LX System Manager - INITIALIZE HELP SYSTEM
  3049.     DI = 1300h
  3050.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3051.         DWORD    pointer to ???
  3052.         DWORD    pointer to ???
  3053.         WORD    ???
  3054. Return: ???
  3055.     STACK unchanged
  3056. --------b-60----DI1301-----------------------
  3057. INT 60 u - HP 95LX System Manager - DISPLAY HELP
  3058.     DI = 1301h
  3059.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3060.         DWORD    pointer to ???
  3061. Return: ???
  3062.     STACK unchanged
  3063. --------b-60----DI1302-----------------------
  3064. INT 60 u - HP 95LX System Manager - "M_HELP_KEY"
  3065.     DI = 1302h
  3066.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3067.         DWORD    pointer to ???
  3068.         WORD    ???
  3069. Return: ???
  3070.     STACK unchanged
  3071. --------b-60----DI1303-----------------------
  3072. INT 60 u - HP 95LX System Manager - "M_HELP_TERM"
  3073.     DI = 1303h
  3074.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3075.         DWORD    pointer to ???
  3076. Return: ???
  3077.     STACK unchanged
  3078. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  3079. --------b-60----DI1400-----------------------
  3080. INT 60 u - HP 95LX System Manager - "M_ColInit"
  3081.     DI = 1400h
  3082.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3083. Return: AX = ???
  3084.     STACK unchanged
  3085. --------b-60----DI1401-----------------------
  3086. INT 60 u - HP 95LX System Manager - "M_ColCpStr"
  3087.     DI = 1401h
  3088.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3089.         DWORD    pointer to ???
  3090.         WORD    ???
  3091.         DWORD    pointer to ???
  3092.         WORD    ???
  3093. Return: ???
  3094.     STACK unchanged
  3095. --------b-60----DI1402-----------------------
  3096. INT 60 u - HP 95LX System Manager - "M_ColLicsStr"
  3097.     DI = 1402h
  3098.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3099.         ???
  3100. Return: ???
  3101.     STACK unchanged
  3102. --------b-60----DI1403-----------------------
  3103. INT 60 u - HP 95LX System Manager - "M_ColLicsChar"
  3104.     DI = 1403h
  3105.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3106.         ???
  3107. Return: ???
  3108.     STACK unchanged
  3109. --------b-60----DI1404-----------------------
  3110. INT 60 u - HP 95LX System Manager - "M_ColToLower"
  3111.     DI = 1404h
  3112.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3113.         DWORD    pointer to ???
  3114.         WORD    ???
  3115. Return: ???
  3116.     STACK unchanged
  3117. --------b-60----DI1405-----------------------
  3118. INT 60 u - HP 95LX System Manager - "M_ColCpSearch"
  3119.     DI = 1405h
  3120.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3121.         DWORD    pointer to ???
  3122.         WORD    ???
  3123.         DWORD    pointer to ???
  3124.         WORD    ???
  3125.         WORD    ???
  3126. Return: ???
  3127.     STACK unchanged
  3128. --------b-60----DI1406-----------------------
  3129. INT 60 u - HP 95LX System Manager - "M_ColToUpper"
  3130.     DI = 1406h
  3131.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3132.         DWORD    pointer to ???
  3133.         WORD    ???
  3134. Return: ???
  3135.     STACK unchanged
  3136. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  3137. --------b-60----DI1500-----------------------
  3138. INT 60 u - HP 95LX System Manager - "GrDispInit"
  3139.     DI = 1500h
  3140.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3141.         ???
  3142. Return: ???
  3143.     STACK unchanged
  3144. --------b-60----DI1501-----------------------
  3145. INT 60 u - HP 95LX System Manager - "GrDispClear"
  3146.     DI = 1501h
  3147.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3148.         ???
  3149. Return: ???
  3150.     STACK unchanged
  3151. --------b-60----DI1502-----------------------
  3152. INT 60 u - HP 95LX System Manager - "GrDispDot"
  3153.     DI = 1502h
  3154.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3155.         ???
  3156. Return: ???
  3157.     STACK unchanged
  3158. --------b-60----DI1503-----------------------
  3159. INT 60 u - HP 95LX System Manager - "GrDispDraw"
  3160.     DI = 1503h
  3161.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3162.         ???
  3163. Return: ???
  3164.     STACK unchanged
  3165. --------b-60----DI1504-----------------------
  3166. INT 60 u - HP 95LX System Manager - "GrDispFill"
  3167.     DI = 1504h
  3168.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3169.         ???
  3170. Return: ???
  3171.     STACK unchanged
  3172. --------b-60----DI1505-----------------------
  3173. INT 60 u - HP 95LX System Manager - "GrDispRead"
  3174.     DI = 1505h
  3175.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3176.         ???
  3177. Return: ???
  3178.     STACK unchanged
  3179. --------b-60----DI1506-----------------------
  3180. INT 60 u - HP 95LX System Manager - "GrDispString"
  3181.     DI = 1506h
  3182.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3183.         ???
  3184. Return: ???
  3185.     STACK unchanged
  3186. --------b-60----DI1507-----------------------
  3187. INT 60 u - HP 95LX System Manager - "GrDispPan"
  3188.     DI = 1507h
  3189.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3190.         ???
  3191. Return: ???
  3192.     STACK unchanged
  3193. --------b-60----DI1508-----------------------
  3194. INT 60 u - HP 95LX System Manager - "GrDispZoom"
  3195.     DI = 1508h
  3196.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3197.         ???
  3198. Return: ???
  3199.     STACK unchanged
  3200. --------b-60----DI1509-----------------------
  3201. INT 60 u - HP 95LX System Manager - "GrDispSave"
  3202.     DI = 1509h
  3203.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3204.         ???
  3205. Return: ???
  3206.     STACK unchanged
  3207. --------b-60----DI150A-----------------------
  3208. INT 60 u - HP 95LX System Manager - "GrDispRestore"
  3209.     DI = 150Ah
  3210.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3211.         ???
  3212. Return: ???
  3213.     STACK unchanged
  3214. --------b-60----DI150B-----------------------
  3215. INT 60 u - HP 95LX System Manager - "GrDispCorner"
  3216.     DI = 150Bh
  3217.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3218.         ???
  3219. Return: ???
  3220.     STACK unchanged
  3221. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  3222. --------b-60----DI1604-----------------------
  3223. INT 60 u - HP 95LX System Manager - "CP_TO_LICS"
  3224.     DI = 1604h
  3225.     STACK:    2 WORDs unused dummies (for calls from high level languages)
  3226.         ???
  3227. Return: ???
  3228.     STACK unchanged
  3229. SeeAlso: INT 15/AX=4DD4h,INT 61"HP 95LX",INT 62"HP 95LX"
  3230. --------G-6000-------------------------------
  3231. INT 60 - SYS_PROF.EXE - PROFILER STATUS
  3232.     AH = 00h
  3233. Return: AX = 0000h    profiling is off
  3234.         otherwise profiling is on
  3235. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia #47
  3236. SeeAlso: AH=01h"SYS_PROF",02h"SYS_PROF"
  3237. --------G-6000-------------------------------
  3238. INT 60 - MDEBUG - GET STATUS
  3239.     AH = 00h
  3240.     DS:SI -> password or a null byte
  3241. Return: AX = return code
  3242.         FFFEh password is invalid
  3243.         FFFDh display mode is invalid
  3244.        else successful
  3245.         ES = value of the monitor register SE
  3246.         DI = value of the monitor register OF
  3247.         CH = monitor color
  3248.         CL = interpreter color
  3249.         BH = monitor start line
  3250.         BL = interpreter start line
  3251.         AH = makecode of the hotkey
  3252.         AL = ASCII code of the hotkey
  3253.         DL = status of special keys (only SHIFT, ALT, CTRL) for the
  3254.             hotkey (coded as for the keyboard flag at 0040h:0017h)
  3255.         DH = basic process number for the communication with drivers
  3256.             process number for the display driver, DH+1 = process
  3257.             number for the command driver(s)
  3258.     DS:SI -> MDEBUG identification table
  3259. Program: MDEBUG is a shareware memory-resident debugging tool by Bernd
  3260.       Schemmer, including a memory monitor, an interpreter, and a
  3261.       disassembler
  3262. Notes:    MDEBUG uses INT 60 by default, but may be directed to any of INT 60
  3263.       through INT 67; the interrupt handler is preceded by the signature
  3264.       "USERINT" and is not chained
  3265.     if DS:SI points at a null byte, MDEBUG will prompt for a password if
  3266.       passwords are active; enough stack space must be provided for an
  3267.       INT 10h call (which MDEBUG uses while prompting for the password)
  3268. SeeAlso: AH=02h"MDEBUG"
  3269.  
  3270. Format of MDEBUG identification table:
  3271. Offset    Size    Description
  3272.  -2    WORD    entry offset
  3273.  00h    WORD    CS of MDEBUG
  3274.  02h    DWORD    old INT 08h vector
  3275.  06h    DWORD    old INT 09h vector
  3276.  0Ah    DWORD    address INT 16h routine used by MDEBUG
  3277.  0Eh    BYTE    length of version string
  3278.  0Fh  N BYTEs    version string
  3279. --------G-6001-------------------------------
  3280. INT 60 - MDEBUG - GET ADDRESS OF THE HELP REGISTERS
  3281.     AH = 01h
  3282.     DS:SI -> password or a null byte
  3283. Return: AX = return code
  3284.         FFFEh password is invalid
  3285.         FFFDh display mode is invalid
  3286.        else successful
  3287.         ES:DI point to the help registers of MDEBUG
  3288.            ES:DI-02h  -> R0 (WORD)
  3289.            ES:DI      -> R1 (WORD)
  3290.            ES:DI+02h  -> R2 (WORD)
  3291.            ES:DI+04h  -> R3 (WORD)
  3292.            ...
  3293.            ES:DI+0Eh  -> R8 (WORD)
  3294. --------G-6001-------------------------------
  3295. INT 60 - SYS_PROF.EXE - TURN PROFILING OFF
  3296.     AH = 01h
  3297. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia #47
  3298. SeeAlso: AH=00h"SYS_PROF",02h"SYS_PROF"
  3299. --------N-6001FF-----------------------------
  3300. INT 60 - FTP Packet Driver - BASIC FUNC - GET DRIVER INFO
  3301.     AX = 01FFh
  3302.     BX = handle returned by function 02h
  3303. Return: CF set on error
  3304.         DH = error code (see below)
  3305.     CF clear if successful
  3306.         BX = version
  3307.         CH = network interface class (see below)
  3308.         DX = interface type (see below)
  3309.         CL = number
  3310.         DS:SI -> name
  3311.         AL = driver functions supported
  3312.         01h basic
  3313.         02h basic and extended
  3314.         05h basic and high-performance
  3315.         06h basic, high-performance, and extended
  3316.         FFh not installed
  3317. Note:    the handle in BX is optional for drivers written to v1.07 or later of
  3318.       the packet driver specification
  3319.  
  3320. Values for error code:
  3321.  01h "BAD_HANDLE"    invalid handle number 
  3322.  02h "NO_CLASS"        no interfaces of the specified class found
  3323.  03h "NO_TYPE"        no interfaces of the specified type found
  3324.  04h "NO_NUMBER"    no interfaces of the specified number found
  3325.  05h "BAD_TYPE"        bad packet type
  3326.  06h "NO_MULTICAST"    interface does not support multicast messages
  3327.  07h "CANT_TERMINATE"    this packet driver cannot terminate
  3328.  08h "BAD_MODE"        invalid receiver mode
  3329.  09h "NO_SPACE"        insufficient space
  3330.  0Ah "TYPE_INUSE"    type accessed but never released
  3331.  0Bh "BAD_COMMAND"    bad command
  3332.  0Ch "CANT_SEND"    packet could not be sent
  3333.  0Dh "CANT_SET"        hardware address could not be changed
  3334.  0Eh "BAD_ADDRESS"    hardware address has a bad length or format
  3335.  0Fh "CANT_RESET"    could not reset interface
  3336.  
  3337. Values for Network Interface classes/types:
  3338.     Class 01h  Ethernet/IEEE 802.3     
  3339.     01h 3COM 3C500/3C501
  3340.     02h 3COM 3C505
  3341.     03h MICOM-Interlan NI5010
  3342.     04h BICC Data Networks 4110
  3343.     05h BICC Data Networks 4117
  3344.     06h MICOM-Interlan NP600
  3345.     08h Ungermann-Bass PC-NIC
  3346.     09h Univation NC-516
  3347.     0Ah TRW PC-2000    
  3348.     0Bh MICOM-Interlan NI5210
  3349.     0Ch 3COM 3C503
  3350.     0Dh 3COM 3C523
  3351.     0Eh Western Digital WD8003
  3352.     0Fh Spider Systems S4
  3353.     10h Torus Frame Level
  3354.     11h 10Net Communications
  3355.     12h Gateway PC-bus
  3356.     13h Gateway AT-bus
  3357.     14h Gateway MCA-bus
  3358.     15h IMC PCnic
  3359.     16h IMC PCnic II
  3360.     17h IMC PCnic 8-bit
  3361.     18h Tigan Communications
  3362.     19h Micromatic Research
  3363.     1Ah Clarkson "Multiplexor"
  3364.     1Bh D-Link 8-bit
  3365.     1Ch D-Link 16-bit
  3366.     1Dh D-Link PS/2
  3367.     1Eh Research Machines 8
  3368.     1Fh Research Machines 16
  3369.     20h Research Machines MCA
  3370.     21h Radix Microsystems EXM1 16-bit
  3371.     22h Interlan Ni9210
  3372.     23h Interlan Ni6510
  3373.     24h Vestra LANMASTER 16-bit
  3374.     25h Vestra LANMASTER 8-bit
  3375.     26h Allied Telesis PC/XT/AT
  3376.     27h Allied Telesis NEC PC-98
  3377.     28h Allied Telesis Fujitsu FMR
  3378.     29h Ungermann-Bass NIC/PS2
  3379.     2Ah Tiara LANCard/E AT
  3380.     2Bh Tiara LANCard/E MC
  3381.     2Ch Tiara LANCard/E TP
  3382.     2Dh Spider Communications SpiderComm 8
  3383.     2Eh Spider Communications SpiderComm 16
  3384.     2Fh AT&T Starlan NAU
  3385.     30h AT&T Starlan-10 NAU
  3386.     31h AT&T Ethernet NAU
  3387.     32h Intel smart card
  3388.     33h Xircom Packet Adapter
  3389.     34h Aquila Ethernet
  3390.     35h Novell NE1000
  3391.     36h Novell NE2000
  3392.     37h SMC PC-510
  3393.     38h AT&T Fiber NAU
  3394.     39h NDIS to Packet Driver adapter
  3395.     3Ah Racal-InterLan ES3210
  3396.     3Bh General Systems ISDN simulated Ethernet
  3397.     3Ch Hewlett-Packard
  3398.     3Dh IMC EtherNic-8
  3399.     3Eh IMC EtherNic-16
  3400.     3Fh IMC EtherNic-MCA
  3401.     40h NetWorth EtherNext
  3402.     41h Dataco Scanet
  3403.     42h DEC DEPCA
  3404.     43h C-Net
  3405.     44h Gandalf LANLine
  3406.     45h Apricot built-in
  3407.     46h David Systems Ether-T
  3408.     47h ODI to Packet Driver adapter
  3409.     48h AMD Am21110-16
  3410.     49h Intel ICD Network controller family
  3411.     4Ah Intel ICD PCL2
  3412.     4Bh Intel ICD PCL2A
  3413.     4Ch AT&T LANPacer
  3414.     4Dh AT&T LANPacer+
  3415.     4Eh AT&T EVB
  3416.     4Fh AT&T StarStation
  3417.     50h SLIP simulated ethernet
  3418.     51h Racal-Interlan NIA310
  3419.     52h Racal-Interlan NISE
  3420.     53h Racal-Interlan NISE30
  3421.     54h Racal-Interlan NI6610
  3422.     55h Ethernet over IP/UDP
  3423.     Class 02h  ProNET-10
  3424.     01h Proteon p1300
  3425.     02h Proteon p1800
  3426.     Class 03h  IEEE 802.5/ProNet-4
  3427.     01h IBM Token-Ring Adapter
  3428.     02h Proteon p1340
  3429.     03h Proteon p1344
  3430.     04h Gateway PC-bus
  3431.     05h Gateway AT-bus
  3432.     06h Gateway MCA-bus
  3433.     39h NDIS to Packet Driver adapter
  3434.     47h ODI to Packet Driver adapter
  3435.     Class 04h  Omninet
  3436.     Class 05h  Appletalk
  3437.     01h ATALK.SYS adapter
  3438.     Class 06h  Serial Line
  3439.     01h Clarkson 8250-SLIP
  3440.     02h Clarkson "Multiplexor"
  3441.     Class 07h  StarLAN (subsumed by Ethernet class)
  3442.     Class 08h  ARCnet
  3443.     01h Datapoint RIM
  3444.     Class 09h  AX.25
  3445.     01h Ottawa PI card
  3446.     Class 0Ah  KISS
  3447.     Class 0Bh  IEEE 802.3 with 802.2 headers
  3448.     types same as for class 01h
  3449.     Class 0Ch  FDDI with 802.2 headers
  3450.     01h Western Digital
  3451.     02h Frontier Technology
  3452.     Class 0Dh  Internet X.25
  3453.     01h Western Digital
  3454.     02h Frontier Technology
  3455.     Class 0Eh  N.T. LANSTAR (encapsulating DIX Ethernet)
  3456.     01h NT LANSTAR/8
  3457.     02h NT LANSTAR/MC
  3458.     Class 0Fh  SLFP (MIT serial specification)
  3459.     01h MERIT
  3460.     Class 10h  PPP (Point-to-Point Protocol)
  3461.  
  3462. Note: class and type numbers are cleared through FTP Software
  3463. --------G-6002-------------------------------
  3464. INT 60 - MDEBUG - SET STATUS
  3465.     AH = 02h
  3466.     DS:SI -> password or a null byte
  3467.     ES = new value for the register SE
  3468.     DI = new value for the register OF
  3469.     CH = new monitor color if nonzero
  3470.     CL = new interpreter color if nonzero
  3471.     BH = new monitor start line if nonzero
  3472.     BL = new interpreter start line if nonzero
  3473.     AL = new ASCII code for the hotkey ('A'..'Z', 'a'..'z') if nonzero
  3474.     DL = new status of the special keys (SHIFT, ALT, CTRL) for the hotkey
  3475.         if nonzero
  3476.     DH = if nonzero, new basic process number for communication with the
  3477.         drivers (DH = multiplex number for the display driver,
  3478.         DH+1 = multiplex number for the command driver or drivers)
  3479. Return: AX = return code
  3480.         FFFFh call not allowed
  3481.         FFFEh password is invalid
  3482.         FFFDh display mode is invalid
  3483.         0000h successful, status changed
  3484.        else AL = error code
  3485.             bit 0 invalid monitor start line
  3486.             1 invalid interpreter start line
  3487.             2 invalid hotkey
  3488.             3 invalid process number
  3489.               4-7 reserved
  3490. Note:    the values of the registers SE and OF are always changed, the other
  3491.       values are only changed if they are valid
  3492. SeeAlso: AH=00h"MDEBUG"
  3493. --------N-6002-------------------------------
  3494. INT 60 - FTP Packet Driver - BASIC FUNC - ACCESS TYPE
  3495.     AH = 02h
  3496.     AL = interface class
  3497.     BX = interface type
  3498.     DL = interface number
  3499.     DS:SI -> type
  3500.     CX = length of type (0000h for all packets)
  3501.     ES:DI -> receiver
  3502. Return: CF set on error
  3503.         DH = error code (see AX=01FFh)
  3504.     CF clear if successful
  3505.         AX = handle        
  3506. SeeAlso: AH=03h"FTP"
  3507.  
  3508. Receiver is called with:
  3509.     AX = subfunction
  3510.         00h get packet buffer
  3511.         DX = lookahead length (v1.10+)
  3512.         DS:SI -> lookahead buffer if DX nonzero (v1.10+)
  3513.         DI = error flags (class dependent) (v1.10+)
  3514.         Return: ES:DI -> packet buffer
  3515.                 0000h:0000h means throw away packet
  3516.             CX = size of buffer (v1.10+), may be smaller than
  3517.                 incoming data
  3518.         01h copy completed
  3519.         DS:SI -> buffer
  3520.         CX = bytes actually copied (v1.10+)
  3521.     BX = handle
  3522.     CX = buffer length
  3523. when a packet is received
  3524. --------G-6002-------------------------------
  3525. INT 60 - SYS_PROF.EXE - TURN PROFILING ON
  3526.     AH = 02h
  3527. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia #47
  3528. SeeAlso: AH=00h"SYS_PROF",01h"SYS_PROF"
  3529. --------G-6003-------------------------------
  3530. INT 60 - MDEBUG - POP UP
  3531.     AH = 03h
  3532.     DS:SI -> password or a null byte
  3533.     ES -> new value for the register SE
  3534.     DI -> new value for the register OF
  3535. Return: AX = return code
  3536.         FFFFh call not allowed
  3537.         FFFEh password is invalid
  3538.         FFFDh display mode is invalid
  3539.        else successful
  3540. SeeAlso: AH=04h"MDEBUG"
  3541. --------N-6003-------------------------------
  3542. INT 60 - FTP Packet Driver - BASIC FUNC - RELEASE TYPE
  3543.     AH = 03h
  3544.     BX = handle
  3545. Return: CF set on error
  3546.        DH = error code (see AX=01FFh)
  3547.     CF clear if successful    
  3548. SeeAlso: AH=02h"FTP"
  3549. --------G-6003-------------------------------
  3550. INT 60 - SYS_PROF.EXE - GET ADDRESS OF PROFILING TABLE
  3551.     AH = 03h
  3552. Return: ES:BX -> profiling table
  3553. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia #47
  3554. SeeAlso: AH=04h"SYS_PROF"
  3555. --------N-6004-------------------------------
  3556. INT 60 - FTP Packet Driver - BASIC FUNC - SEND PACKET
  3557.     AH = 04h
  3558.     DS:SI -> buffer
  3559.     CX = length
  3560. Return: CF set on error
  3561.         DH = error code (see AX=01FFh)
  3562.     CF clear if successful
  3563. Note:    the buffer may be modified immediately upon return from this call
  3564. SeeAlso: AH=0Bh
  3565. --------G-6004-------------------------------
  3566. INT 60 - MDEBUG - POP UP
  3567.     AH = 04h
  3568.     DS:SI -> password or a null byte
  3569. Return: AX = return code
  3570.         FFFFh call not allowed
  3571.         FFFEh password is invalid
  3572.         FFFDh display mode is invalid
  3573.        else successful
  3574. SeeAlso: AH=03h"MDEBUG",AH=07h"MDEBUG"
  3575. --------G-6004-------------------------------
  3576. INT 60 - SYS_PROF.EXE - CLEAR PROFILING TABLE
  3577.     AH = 04h
  3578. Note:    SYS_PROF.EXE is the TSR portion of a profiler from Micro Cornucopia #47
  3579. SeeAlso: AH=03h"SYS_PROF"
  3580. --------N-6005-------------------------------
  3581. INT 60 - FTP Packet Driver - BASIC FUNC - TERMINATE DRIVER FOR HANDLE
  3582.     AH = 05h
  3583.     BX = handle (optional for v1.10+)
  3584. Return: CF set on error
  3585.        DH = error code (see AX=01FFh)
  3586.     CF clear if successful
  3587. --------G-6005-------------------------------
  3588. INT 60 - MDEBUG - GET AND SET MDEBUG FLAGS
  3589.     AH = 05h
  3590.     DS:SI -> password or a null byte
  3591.     BL = new value for the semaphor of MDEBUG
  3592.          00h  enable popup of MDEBUG
  3593.          else disable popup of MDEBUG
  3594. Return: AX = return code
  3595.         FFFEh password is invalid
  3596.         FFFDh display mode is invalid
  3597.        else successful
  3598.         BL = old value of the semapor of MDEBUG
  3599.         BH = old value of the INT 08h semaphor
  3600.             (this semaphor is always reset after this function)
  3601. --------N-6006-------------------------------
  3602. INT 60 - FTP Packet Driver - BASIC FUNC - GET ADDRESS
  3603.     AH = 06h
  3604.     BX = handle (optional for v1.10+)
  3605.     ES:DI -> buffer
  3606.     CX = length
  3607. Return: CF set on error
  3608.         DH = error code (see AX=01FFh)
  3609.     CF clear if successful
  3610.         CX = length    
  3611. Note:    copies the local net address associated with the handle into the buffer
  3612. --------G-6006-------------------------------
  3613. INT 60 - MDEBUG - GET PASSWORD STATUS
  3614.     AH = 06h
  3615. Return: AL = status
  3616.         00h password inactive
  3617.         01h password active
  3618. --------N-6007-------------------------------
  3619. INT 60 - FTP Packet Driver - BASIC FUNC - RESET INTERFACE
  3620.     AH = 07h
  3621.     BX = handle (optional for v1.10+)
  3622. Return: CF set on error
  3623.         DH = error code (see AX=01FFh)
  3624.     CF clear if successful
  3625. --------G-6007-------------------------------
  3626. INT 60 - MDEBUG v1.70+ - GET ACTIVE PART OF MDEBUG
  3627.     AH = 07h
  3628. Return: AL = active part for the next popup session of MDEBUG:
  3629.         bit 0: the next popup session will start in the interpreter rather
  3630.             than in the monitor
  3631.         bit 1: the next popup session will sart in the online-help
  3632. SeeAlso: AH=03h"MDEBUG",AH=04h"MDEBUG"
  3633. --------G-6008-------------------------------
  3634. INT 60 - MDEBUG - UNUSED
  3635.     AH = 08h-FFh
  3636. Return: AX = FFFCh
  3637. --------N-600A-------------------------------
  3638. INT 60 - FTP Packet Driver 1.09+ - HIGH-PERF FUNC - GET PARAMETERS
  3639.     AH = 0Ah
  3640. Return: CF set on error
  3641.         DH = error code (0Bh) (see AX=01FFh)
  3642.     CF clear if successful
  3643.         ES:DI -> parameter table (see below)
  3644.  
  3645. Format of parameter table:
  3646. Offset    Size    Description
  3647.  00h    BYTE    major revision of packet driver spec driver conforms to
  3648.  01h    BYTE    minor revision of packet driver spec
  3649.  02h    BYTE    length of this structure in bytes
  3650.  03h    BYTE    length of a MAC-layer address
  3651.  04h    WORD    maximum transfer unit, including MAC headers
  3652.  06h    WORD    buffer size for multicast addr
  3653.  08h    WORD    number of receive buffers (one less than back-to-back MTU rcvs)
  3654.  0Ah    WORD    number of transmit buffers
  3655.  0Ch    WORD    interrupt number to hook for post-EOI processing, 00h=none
  3656. --------N-600B-------------------------------
  3657. INT 60 - FTP Packet Driver 1.09 - HIGH-PERF FUNC - ASYNCHRONOUS SEND PACKET
  3658.     AH = 0Bh
  3659.     DS:SI -> buffer
  3660.     CX = length of buffer
  3661.     ES:DI -> FAR function to call when buffer becomes available
  3662. Return: CF set on error
  3663.         DH = error code (0Bh,0Ch) (see AX=01FFh)
  3664.     CF clear if successful
  3665. Notes:    unlike function 04h, the buffer is not available for modification as
  3666.       soon as the call returns; the buffer may be queued by the driver and
  3667.       not processed until later
  3668.     this function has been dropped from v1.10+ of the specification and
  3669.       replaced by function 0Ch
  3670. SeeAlso: AH=04h"Packet Driver",AH=0Ch"Packet Driver"
  3671.  
  3672. Completion function called with:
  3673.     AX = result
  3674.         00h copy OK
  3675.         nonzero error
  3676.     ES:DI -> buffer passed to INT 60/AH=0Bh call
  3677. --------N-600C-------------------------------
  3678. INT 60 - FTP Packet Driver 1.10+ - HIGH-PERF FUNC - ASYNCHRONOUS SEND PACKET
  3679.     AH = 0Ch
  3680.     ES:DI -> pointer to IOCB
  3681. Return: CF set on error
  3682.         DH = error code (see AX=01FFh)
  3683.     CF clear if successful
  3684. SeeAlso: AH=04h"Packet Driver",AH=0Bh"Packet Driver"
  3685.  
  3686. Format of IOCB:
  3687. Offset    Size    Description
  3688.  00h    DWORD    pointer to buffer
  3689.  04h    WORD    length of buffer
  3690.  06h    BYTE    flags
  3691.         bit 0: packet driver is finished with IOCB
  3692.         bit 1: application requests upcall when driver completes
  3693.  07h    DWORD    function address for upcall
  3694.  0Bh  4 BYTEs    future gather write
  3695.  0Fh    BYTE    ???
  3696.  10h  8 BYTEs    private driver workspace
  3697.  
  3698. Completion function called with:
  3699.     ES:DI -> IOCB passed to INT 60/AH=0Ch
  3700. --------N-600C-------------------------------
  3701. INT 60 - Banyan VINES, 3com - GET STATION ADDRESS
  3702.     AH = 0Ch
  3703. Return: AL = status
  3704.         00h successful
  3705.         ES:SI -> 6-byte station address
  3706.         02h semaphore service is unavailable
  3707. --------N-600D-------------------------------
  3708. INT 60 - FTP Packet Driver 1.10+ - HIGH-PERF FUNC - DROP PACKET FROM QUEUE
  3709.     AH = 0Dh
  3710.     ES:DI -> IOCB
  3711. Return: CF set on error
  3712.         DH = error code (see AX=01FFh)
  3713.     CF clear if successful
  3714. SeeAlso: AH=0Ch"Packet Driver"
  3715. --------N-6011-------------------------------
  3716. INT 60 - 3com, 10NET, Banyan VINES - LOCK AND WAIT
  3717.     AH = 11h
  3718.     AL = drive number or 0
  3719.     DX = number of seconds to wait
  3720.     ES:SI = Ethernet address or 0
  3721.     DS:BX -> 31-byte ASCIZ semaphore name
  3722. Return: AL = status
  3723.         00h successful
  3724.         01h timeout
  3725.         02h server not responding
  3726.         03h invalid semaphore name
  3727.         04h semaphore list is full
  3728.         05h invalid drive ID
  3729.         06h invalid Ethernet address
  3730.         07h not logged in
  3731.         08h write to network failed
  3732.         09h semaphore already logged for this CPU
  3733. SeeAlso: AH=12h,AH=13h
  3734. --------N-6012-------------------------------
  3735. INT 60 - 3com, 10NET, Banyan VINES - LOCK
  3736.     AH = 12h
  3737.     AL = drive number or 00h
  3738.     ES:SI = Ethernet address or 0000h:0000h
  3739.     DS:BX -> 31-byte ASCIZ semaphore name
  3740. Return: AL = status (see also AH=11h)
  3741.         01h semaphore currently locked by another PC
  3742. Note:    unlike function 11h, this function returns immediately
  3743. SeeAlso: AH=11h,AH=13h
  3744. --------N-6013-------------------------------
  3745. INT 60 - 3com, 10NET, Banyan VINES - UNLOCK
  3746.     AH = 13h
  3747.     AL = drive number or 00h
  3748.     ES:SI = Ethernet address or 0000h:0000h
  3749.     DS:BX -> 31-byte ASCIZ semaphore name
  3750. Return: AL = status (see also AH=11h)
  3751.         1 semaphore not locked
  3752. SeeAlso: AH=11h,AH=12h
  3753. --------N-6014-------------------------------
  3754. INT 60 - FTP Packet Driver - EXTENDED FUNC - SET RECEIVE MODE
  3755.     AH = 14h
  3756.     BX = handle (optional for v1.10+)
  3757.     CX = mode
  3758.         01h turn off receiver
  3759.         02h receive only packets sent to this interface
  3760.         03h mode 2 plus broadcast packets
  3761.         04h mode 3 plus limited multicast packets
  3762.         05h mode 3 plus all multicast packets
  3763.         06h all packets
  3764.         07h raw mode for serial line only (v1.10+)
  3765. Return: CF set on error
  3766.        DH = error code (01h,08h) (see AX=01FFh)
  3767.     CF clear if successful
  3768. SeeAlso: AH=15h
  3769. --------N-6015-------------------------------
  3770. INT 60 - FTP Packet Driver - EXTENDED FUNC - GET RECEIVE MODE
  3771.     AH = 15h
  3772.     BX = handle (optional for v1.10+)
  3773. Return: CF set on error
  3774.         DH = error code (01h) (see AX=01FFh)
  3775.     CF clear if successful
  3776.         AX = mode    
  3777. SeeAlso: AH=14h
  3778. --------N-6016-------------------------------
  3779. INT 60 - FTP Packet Driver - EXTENDED FUNC - SET MULTICAST LIST
  3780.     AH = 16h
  3781.     ES:DI -> multicast list
  3782.     CX = length of list in bytes
  3783. Return: CF set on error
  3784.         DH = error code (06h,09h,0Eh) (see AX=01FFh)
  3785.     CF clear if successful
  3786. SeeAlso: AH=17h
  3787. --------N-6017-------------------------------
  3788. INT 60 - FTP Packet Driver - EXTENDED FUNC - GET MULTICAST LIST
  3789.     AH = 17h
  3790. Return: CF set on error
  3791.         DH = error code (06h,09h) (see AX=01FFh)
  3792.     CF clear if successful
  3793.         ES:DI -> multicast addresses (do not modify)
  3794.         CX = bytes of multicast addresses currently in use
  3795. SeeAlso: AH=16h
  3796. --------N-6018-------------------------------
  3797. INT 60 - FTP Packet Driver - EXTENDED FUNC - GET STATISTICS
  3798.     AH = 18h
  3799.     BX = handle (optional for v1.10+)
  3800. Return: CF set on error
  3801.         DH = error code (01h) (see AX=01FFh)
  3802.     CF clear if successful
  3803.         DS:SI -> statistics (see below)
  3804.  
  3805. Format of statistics:
  3806. Offset    Size    Description
  3807.  00h    DWORD    packets in
  3808.  04h    DWORD    packets out
  3809.  08h    DWORD    bytes in
  3810.  0Ch    DWORD    bytes out
  3811.  10h    DWORD    errors in
  3812.  14h    DWORD    errors out
  3813.  18h    DWORD    packets dropped
  3814. --------N-6019-------------------------------
  3815. INT 60 - FTP Packet Driver - EXTENDED FUNC - SET NETWORK ADDRESS
  3816.     AH = 19h
  3817.     ES:DI -> address
  3818.     CX = length of address
  3819. Return: CF set on error
  3820.         DH = error code (0Dh,0Eh) (see AX=01FFh)
  3821.     CF clear if successful
  3822.         CX = length
  3823. --------N-601A-------------------------------
  3824. INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - SEND RAW BYTES
  3825.     AH = 1Ah
  3826.     DS:SI -> buffer
  3827.     CX = length of buffer
  3828. Return: CF set on error
  3829.         DH = error code (see AX=01FFh)
  3830.     CF clear if successful
  3831. SeeAlso: AH=1Ch
  3832. --------N-601B-------------------------------
  3833. INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - FLUSH RAW BYTES RECEIVED
  3834.     AH = 1Bh
  3835. Return: CF set on error
  3836.         DH = error code (see AX=01FFh)
  3837.     CF clear if successful
  3838. SeeAlso: AH=1Ch
  3839. --------N-601C-------------------------------
  3840. INT 60 - FTP Packet Driver v1.10+ - EXTENDED FUNC - FETCH RAW BYTES RECEIVED
  3841.     AH = 1Ch
  3842.     DS:SI -> buffer
  3843.     CX = length of buffer
  3844.     DX = timeout in clock ticks
  3845. Return: CF set on error
  3846.         DH = error code (see AX=01FFh)
  3847.     CF clear if successful
  3848.         CX = number of bytes transferred to buffer
  3849. SeeAlso: AH=1Ah,AH=1Bh
  3850. --------a-60AD-------------------------------
  3851. INT 60 - AccessDOS - API
  3852.     AH = ADh
  3853.     AL = function
  3854.         E1h ???
  3855.         Return: AX = ???
  3856.         E2h get configuration
  3857.         Return: BX:AX -> configuration data
  3858. Program: AccessDOS is a public domain TSR developed at The Trace Research and
  3859.       Development Center which provides extensions for keyboard, mouse,
  3860.       and sound access by the visually, hearing, or motor-control
  3861.       impaired.
  3862. Note:    INT 60 is the default vector; AccessDOS will use the first 0000h:0000h
  3863.       vector in the range 60h through 66h.
  3864. --------*-61---------------------------------
  3865. INT 61 - reserved for user interrupt
  3866. --------b-61---------------------------------
  3867. INT 61 - Atari Portfolio - EXTENDED BIOS
  3868.    provides subfunctions such as turning off the machine, accessing internal
  3869.    variables, and mapping memory cards
  3870. SeeAlso: INT 60"Atari"
  3871. --------b-61---------------------------------
  3872. INT 61 - HP 95LX System Manager - LOAD DS
  3873. SeeAlso: INT 0F"HP 95LX",INT 60"HP 95LX"
  3874. --------r-61---------------------------------
  3875. INT 61 - JPI TopSPEED Modula-2 v1 - PROCEDURE EXIT TRAP
  3876. SeeAlso: INT 61"JPI"
  3877. --------d-61---------------------------------
  3878. INT 61 - Adaptec and OMTI controllers - DRIVE 0 DATA
  3879. Note:    this vector stores the second four bytes of the parameter table for
  3880.       hard disk 0
  3881. SeeAlso: INT 60"Adaptec",INT 62"Adaptec",INT 63"Adaptec"
  3882. --------I-61---------------------------------
  3883. INT 61 - Sangoma CCIP (CCPOP 3270 resident module) INTERFACE
  3884.     BX:DX -> control block
  3885. SeeAlso: INT 67"Sangoma"
  3886. --------v-61---------------------------------
  3887. INT 61 - VIRUS - "SEMTEX"/"Screen Trasher" - INT 21h SUBSTITUTE
  3888. Note:    the virus copies the original INT 21h vector into INT 61h
  3889. SeeAlso: INT 21h,INT 60"VIRUS",INT 6B"VIRUS"
  3890. --------N-61---------------------------------
  3891. INT 61 - FTP Software PC/TCP - TCP/IP TSR System Call interface
  3892.     AH = system call number (see also entries below)
  3893.         01h "pkt_alloc" (v2.05; this is "net_config" in v2.1+)
  3894.         02h "pkt_free" (v2.05; this is "get_kernel_info" in v2.1+)
  3895. Return: CF clear if successful
  3896.     CF set on error
  3897.         AL = basic error (see below)
  3898.         AH = suberror number
  3899. Notes:    the installation check consists of testing for the signature "TCPTSR"
  3900.       three bytes beyond the start of the interrupt handler
  3901.     INT 61 is the default; PC/TCP v2.05 may be configured to use any
  3902.       interrupt from 20h through E0h
  3903. BUG:    the SLIP kernel for v2.05 bounds-checks the wrong register, so values
  3904.       greater than 54h in AH may crash the system.    Other kernels may have
  3905.       this bug as well.
  3906. SeeAlso: INT 61/AH=00h"PC/TCP",INT 61/AH=2Ah,INT 61/AH=54h
  3907. Index:    installation check;PC/TCP
  3908.  
  3909. Values for error code:
  3910.  00h "NET_NOERR" successful
  3911.  01h "NET_ERR_INUSE" protocol or socket already in use
  3912.  02h "NET_DOS_ERR" MS-DOS error (returned as suberror code in AH)
  3913.  03h "NET_ERR_NOMEM" out of memory
  3914.  04h "NET_ERR_NOTNETCONN" not a network descriptor
  3915.  05h "NET_ERR_ILLEGALOP" invalid operation on given kind of network descriptor
  3916.  06h "NET_ERR_BADPKT" illegal or corrupted packet
  3917.  07h "NET_ERR_NOHOST" no host bound to specified connection
  3918.  08h "NET_ERR_CANTOPEN" unable to open file
  3919.  09h "NET_ERR_NET_UNREACHABLE" network is unreachable
  3920.  0Ah "NET_ERR_HOST_UNREACHABLE" host is unreachable (see subcodes below)
  3921.  0Bh "NET_ERR_PROT_UNREACHABLE" protocol is unreachable
  3922.  0Ch "NET_ERR_PORT_UNREACHABLE" port is unreachable
  3923.  0Dh "NET_ERR_TIMEOUT" operation timed out
  3924.  0Eh "NET_ERR_HOSTUNKNOWN" unable to resolve host name
  3925.  0Fh "NET_ERR_NOSERVERS" no name servers configured
  3926.  10h "NET_ERR_SERVER_ERR" bad reply from name server
  3927.     Subcodes: 0= no error, 1 = Host unreachable
  3928.  11h "NET_ERR_BADFORMAT" bad format for IP address or field in IP address struc
  3929.             is zero
  3930.  12h "NET_ERR_BADARG" invalid argument
  3931.  13h "NET_ERR_EOF" foreign host closed its end of connection
  3932.  14h "NET_ERR_RESET" connection has been reset
  3933.  15h "NET_ERR_WOULDBLOCK" recv() call was done on a non-blocking connection
  3934.             with no data available
  3935.  16h "NET_ERR_UNBOUND" insufficient resources to do operation
  3936.  17h "NET_ERR_NODESC" could not allocate network descriptor
  3937.  18h "NET_ERR_BADSYSCALL" invalid/unsupported kernel call
  3938.  19h "NET_ERR_CANTBROADCAST" unable to broadcast
  3939.  1Ah "NET_ERR_NOTESTAB" operation illegal because connection not established
  3940.  1Bh kernel busy, try again later
  3941.  1Ch "NET_ERR_ICMPMESG" an ICMP message was received (not on streams)
  3942.      (see subcodes below)
  3943. ---v2.1+---
  3944.  1Dh "NET_ERR_TERMINATING" internal kernel fatal error
  3945.  1Eh "NET_ERR_TAG_LOCKED" not allowed to set this tag (net_config)
  3946.  1Fh "NET_ERR_BAD_INTERFACE" non existent interface specified
  3947.  20h "NET_ERR_BADCONFIG" kernel cannot run - bad configuration
  3948.  21h "NET_ERR_EMM" expanded memory error
  3949.  22h "NET_ERR_CANT_SHUTDOWN" cant unload kernel (multitasker running)
  3950.  23h "NET_ERR_PARKED_IN" unable to unhook DOS interrupt
  3951.  24h "NET_ERR_NOQIOS" ran out of resources; try again later
  3952.  25h "NET_ERR_WOULD_TRUNCATE" datagram too large and "don't truncate" was set
  3953.  
  3954. Values for subcodes of error 0Ah "NET_ERR_HOST_UNREACHABLE":
  3955.  00h no error
  3956.  01h host unreachable
  3957.  02h ARP failed
  3958.  03h hardware failure
  3959.  04h link failure
  3960.  05h no route
  3961.  06h gateway down
  3962.  
  3963. Values for subcodes of error 1Ch "NET_ERR_ICMPMESG":
  3964.  07h unrecognised
  3965.  08h can't fragment
  3966.  09h srcr_fail
  3967.  0Ah source quench
  3968.  0Bh time exceeded
  3969.  0Ch parameter problem
  3970.  0Dh admin_prohib. see also code 0Ah
  3971. --------N-6100-------------------------------
  3972. INT 61 U - PC/TCP kernel v2.05+ - GET DEBUG INFORMATION
  3973.     AH = 00h
  3974.     DS:SI -> 216-byte buffer for network debugging information (see below)
  3975. Return: CF clear
  3976.     AX = 0000h
  3977.     buffer filled
  3978. Notes:    this call is not documented by FTP, Inc. for any version
  3979.     most of the information returned by this call is available via the
  3980.       documented get_kernel_info or net_info commands.
  3981. SeeAlso: INT 61"PC/TCP",INT 61/AH=2Ah"PC/TCP"
  3982.  
  3983. Format of network debugging information:
  3984. Offset    Size    Description
  3985.  00h    DWORD    number of interrupts
  3986.  04h    DWORD    receive buffer low-water mark
  3987.  08h    DWORD    transmit buffer low-water mark
  3988.  0Ch    DWORD    number of packets received
  3989.  10h    DWORD    number of packets transmitted
  3990.  14h    DWORD    total receive errors
  3991.  18h    DWORD    total transmit errors
  3992.  1Ch  4 BYTEs    ???
  3993.  20h    DWORD    receive resets
  3994.  24h    DWORD    transmit resets
  3995.  28h    DWORD    number of "runts" received
  3996.  2Ch    DWORD    number of alignment errors on received packets
  3997.  30h    DWORD    number of CRC errors on received packets
  3998.  34h    DWORD    number of parity errors on received packets
  3999.  38h    DWORD    number of receive overflow errors
  4000.  3Ch    DWORD    number of oversized packets received
  4001.  40h    DWORD    number of packets lost due to lack of buffers
  4002.  44h    DWORD    receive timeouts
  4003.  48h 32 BYTEs    ???
  4004.  68h    DWORD    number of transmit collisions
  4005.  6Ch    DWORD    number of transmit timeouts
  4006.  70h    DWORD    number of transmit underflows
  4007.  74h    DWORD    number of lost "crs" on transmit
  4008.  78h    DWORD    number of times heartbeat failed on transmit
  4009.  7Ch 24 BYTEs    ???
  4010.  94h    WORD    free packet buffers
  4011.  96h    WORD    total packet buffers
  4012.  98h    WORD    minimum number of packet buffers free since kernel started
  4013.  9Ah 24 BYTEs    ???
  4014.  B2h    DWORD    pointer to TCP connection list???
  4015.  B6h    DWORD    pointer to IP routing table???
  4016.  BAh 30 BYTEs    ???
  4017. --------V-610000-----------------------------
  4018. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - ZOOM DISPLAY
  4019.     AX = 0000h
  4020.     BX = zoom factor (0-7)
  4021. Notes:    zooms the display based on the given zoom factor
  4022.     INT 61h is the default interrupt; the actual interrupt number can be
  4023.       obtained by calling INT 16/AH=FFh
  4024.     not all vendors include the Tseng TSR which supports these functions
  4025. SeeAlso: INT 16/AH=FFh"OPTIMA",INT 61/AX=0001h"OPTIMA",INT 61/AX=0002h"OPTIMA"
  4026. SeeAlso: INT 61/AX=0005h"OPTIMA"
  4027. --------N-610001SF0001-----------------------
  4028. INT 61 - Banyan VINES - "Sosock" - OPEN COMMUNICATIONS SOCKET
  4029.     AX = 0001h subfn 0001h
  4030.     DS:DX -> communications control block (function 0001h)
  4031. Return: AX = status (see below)
  4032. Note:    BANYAN can use any interrupt from 60h through 66h.  The Banyan
  4033.       interrupt handler is identified by the string "BANV" in the four
  4034.       bytes immediately preceding the interrupt handler
  4035. SeeAlso: AX=0001h/SF=0002h,AX=0001h/SF=0008h,INT 15/AX=DE2Eh
  4036.  
  4037. Values for status:
  4038.  0000h    successful
  4039.  0001h    service not installed
  4040.  0002h    invalid service ID
  4041.  0098h    resource already in use
  4042.  009Eh    address family does not exist
  4043.  009Fh    socket type does not exist
  4044.  00A0h    protocol does not exist
  4045.  00A1h    no more sockets available
  4046.  00A2h    no more buffer space available
  4047.  
  4048. Format of control block:
  4049. Offset    Size    Description
  4050.  00h    WORD    0001h
  4051.  02h    WORD    pointer to argument block
  4052.  04h    WORD    error return code
  4053.  06h  4 BYTEs    reserved
  4054.  
  4055. Format of argument block:
  4056. Offset    Size    Description
  4057.  00h    WORD    pointer to 2-byte buffer for socket identifier
  4058.  02h    WORD    address family
  4059.         0003h Banyan
  4060.  04h    WORD    socket type
  4061.         in address family 0003h
  4062.             0001h IPC socket
  4063.             0002h SPP socket
  4064.  06h    WORD    protocol number
  4065.         FFFFh default
  4066.  08h    WORD    pointer to 16-byte buffer for socket address
  4067.  0Ah    WORD    local port number
  4068.         0000h if service should assign transient port number
  4069.         0001h to 01FFh well-known port number (assigned by Banyan)
  4070.  
  4071. Format of IPC port:
  4072. Offset    Size    Description
  4073.  00h    WORD    address family (always 0003h for Banyan ports)
  4074.  04h  4 BYTEs    network number (server's serial number)
  4075.  06h    WORD    subnet number  (0001h = server, 8000h-FFFEh = PC)
  4076.  08h    WORD    port ID (0001h-01FFh for "well-known" ports)
  4077.  0Ah    BYTE    hop count
  4078.  0Bh  5 BYTEs    filler
  4079. --------N-610001SF0002-----------------------
  4080. INT 61 - Banyan VINES - "Sosend" - INITIATE OUTPUT EVENT
  4081.     AX = 0001h subfn 0002h
  4082.     DS:DX -> communications control block (function 0002h)
  4083. Return: AX = status (see below)
  4084. Note:    BANYAN can use any interrupt from 60h through 66h.  The Banyan
  4085.       interrupt handler is identified by the string "BANV" in the four
  4086.       bytes immediately preceding the interrupt handler
  4087. SeeAlso: AX=0001h/SF=0001h,AX=0001h/SF=0005h
  4088.  
  4089. Values for status:
  4090.  0000h    successful
  4091.  0001h    service not installed
  4092.  0002h    invalid service ID
  4093.  0003h-000Ah reserved for BANV interface errors
  4094.  0097h    invalid socket identifier
  4095.  009Bh    destination node unreachable
  4096.  009Ch    message overflow
  4097.  009Dh    destination socket nonexistent
  4098.  00A2h    no more buffer space
  4099.  00A3h    timeout
  4100.  00B1h    resource disconnect
  4101.  
  4102. Format of control block:
  4103. Offset    Size    Description
  4104.  00h    WORD    0002h
  4105.  02h    WORD    pointer to argument block (see below)
  4106.  04h    WORD    error return code
  4107.         0000h successful
  4108.         0097h invalid socket ID
  4109.         00A2h no more buffer space
  4110.         00A3h timeout event
  4111.         00A5h resource not available
  4112.         00A6h internal communication failure
  4113.         00B1h resource disconnect
  4114.  06h  4 BYTEs    reserved
  4115.  
  4116. Format of argument block:
  4117. Offset    Size    Description
  4118.  00h    WORD    routine metric
  4119.  02h    WORD    error return code
  4120.  04h    WORD    socket identifier
  4121.  06h    WORD    pointer to send buffer
  4122.  08h    WORD    length of send buffer
  4123.  0Ah    WORD    flags
  4124.         bit 0: async request
  4125.         bit 1: reliable message
  4126.         bit 3: end of user message received
  4127.         bit 4: vectored request (if set, send buffer contains buffer
  4128.             descriptors)
  4129.         bit 5: connection-specific receive
  4130.         bit 6: change to connection-specific receive mode
  4131.  0Ch 16 BYTEs    socket address (see below)
  4132.  1Ch    WORD    timeout value in multiples of 200ms
  4133.  1Eh    WORD    connection identifier
  4134.  20h    WORD    type of request
  4135.         0001h send message
  4136.         0002h establish a virtual connection
  4137.         0003h terminate a virtual connection
  4138.  
  4139. Format of buffer descriptor:
  4140. Offset    Size    Description
  4141.  00h    WORD    data segment
  4142.  02h    WORD    buffer pointer
  4143.  04h    WORD    buffer length
  4144.  06h    WORD    character count
  4145.  
  4146. Format of socket address for unreliable datagrams:
  4147. Offset    Size    Description
  4148.  00h    WORD    0003h      address family
  4149.  02h    DWORD    FFFFFFFFh network number
  4150.  06h    WORD    FFFFh      subnet number
  4151.  08h    WORD          local port number
  4152.  0Ah    BYTE    00h-0Fh      hop count
  4153.  0Bh  5 BYTEs    0000h      filler
  4154. --------N-610001SF0003-----------------------
  4155. INT 61 - Banyan VINES - "Sorec" - RECEIVE INPUT EVENT NOTIFICATION
  4156.     AX = 0001h subfn 0003h
  4157.     DS:DX -> communications control block (function 0003h)
  4158. Return: AX = status (00-0Ah,97h,A2h,A3h) (see AX=0001h/SF=0002h)
  4159. Note:    BANYAN can use any interrupt from 60h through 66h.  The Banyan
  4160.       interrupt handler is identified by the string "BANV" in the four
  4161.       bytes immediately preceding the interrupt handler
  4162. SeeAlso: AX=0001h/SF=0002h
  4163.  
  4164. Format of control block:
  4165. Offset    Size    Description
  4166.  00h    WORD    0003h
  4167.  02h    WORD    pointer to argument block (see below)
  4168.  04h    WORD    error return code
  4169.         0000h successful
  4170.         0097h invalid socket ID
  4171.         00A2h no more buffer space
  4172.         00A3h timeout event
  4173.         00A5h resource not available
  4174.         00A6h internal communication failure
  4175.         00B1h resource disconnect
  4176.  06h  4 BYTEs    reserved
  4177.  
  4178. Format of argument block:
  4179. Offset    Size    Description
  4180.  00h    WORD    character count
  4181.  02h    WORD    error return code
  4182.  04h    WORD    socket identifier
  4183.  06h    WORD    pointer to receive buffer
  4184.  08h    WORD    length of receive buffer
  4185.  0Ah    WORD    flags
  4186.         bit 0: async request
  4187.         bit 2: flush receive buffer on overflow
  4188.         bit 3: end of user message received
  4189.         bit 4: vectored request (if set, receive buffer contains buffer
  4190.             descriptors)
  4191.         bit 5: connection-specific receive
  4192.         bit 6: change to connection-specific receive mode
  4193.  0Ch 16 BYTEs    socket address
  4194.  1Ch    WORD    timeout value in multiples of 200ms
  4195.  1Eh    WORD    connection identifier
  4196.  20h    WORD    type of response
  4197.         0001h message received
  4198.         0002h virtual connection established
  4199.         0003h virtual connection terminated
  4200.  
  4201. Format of buffer descriptor:
  4202. Offset    Size    Description
  4203.  00h    WORD    data segment
  4204.  02h    WORD    buffer pointer
  4205.  04h    WORD    buffer length
  4206.  06h    WORD    character count
  4207. --------N-610001SF0004-----------------------
  4208. INT 61 - Banyan VINES - "Soclose" - CLOSE A SOCKET
  4209.     AX = 0001h subfn 0004h
  4210.     DS:DX -> communications control block (function 0004h)
  4211. Return: AX = status (00h-0Ah,97h) (see AX=0001h/SF=0002h)
  4212. Note:    BANYAN can use any interrupt from 60h through 66h.  The Banyan
  4213.       interrupt handler is identified by the string "BANV" in the four
  4214.       bytes immediately preceding the interrupt handler
  4215. SeeAlso: AX=0001h/SF=0001h,INT 15/AX=DE2Eh
  4216.  
  4217. Format of control block:
  4218. Offset    Size    Description
  4219.  00h    WORD    0004h
  4220.  02h    WORD    pointer to argument block (see below)
  4221.  04h    WORD    error return code
  4222.  06h  4 BYTEs    reserved
  4223.  
  4224. Format of argument block:
  4225. Offset    Size    Description
  4226.  00h    WORD    socket identifier
  4227. --------N-610001SF0005-----------------------
  4228. INT 61 - Banyan VINES - "Sowait" - WAIT FOR ASYNCHRONOUS EVENT COMPLETION
  4229.     AX = 0001h subfn 0005h
  4230.     DS:DX -> communications control block (function 0005h)
  4231. Return: AX = status (see below)
  4232. Notes:    BANYAN can use any interrupt from 60h through 66h.  The Banyan
  4233.       interrupt handler is identified by the string "BANV" in the four
  4234.       bytes immediately preceding the interrupt handler
  4235.     returns results for all asynchronous operations invoked from the
  4236.       data segment used for this call
  4237. SeeAlso: AX=0001h/SF=0002h,AX=0001h/SF=0009h
  4238.  
  4239. Values for status:
  4240.  0000h  successful
  4241.  0001h  service not installed
  4242.  0002h  invalid service ID
  4243.  0003h-000Ah reserved for BANV interface errors
  4244.  00A2h  no more buffer space available
  4245.  00A3h  timeout event
  4246.  
  4247. Format of control block:
  4248. Offset    Size    Description
  4249.  00h    WORD    0005h
  4250.  02h    WORD    pointer to argument block (see below)
  4251.  04h    WORD    error return code
  4252.  06h  4 BYTEs    reserved
  4253.  
  4254. Format of argument block:
  4255. Offset    Size    Description
  4256.  00h    WORD    pointer to WORD event pointer
  4257.  02h    WORD    timeout in multiples of 200ms, FFFFh = infinite
  4258. --------N-610001SF0008-----------------------
  4259. INT 61 - Banyan VINES - "Sosession" - REGISTER APPLICATION WITH COMM SERVICE
  4260.     AX = 0001h subfn 0008h
  4261.     DS:DX -> communications control block (function 0008h)
  4262. Return: AX = status
  4263.         0000h  successful
  4264.         00A2h  no more buffer space available
  4265. Note:    BANYAN can use any interrupt from 60h through 66h (default 61h).  The
  4266.       Banyan interrupt handler is identified by the string "BANV" in the
  4267.       four bytes immediately preceding the interrupt handler
  4268. SeeAlso: AX=0001h/SF=0001h,AX=0001h/SF=0009h
  4269.  
  4270. Format of control block:
  4271. Offset    Size    Description
  4272.  00h    WORD    0008h
  4273.  02h    WORD    process type
  4274.         0001h transient process
  4275.         0002h resident process
  4276.  04h    WORD    error return code
  4277.  06h  4 BYTEs    reserved
  4278. --------N-610001SF000B-----------------------
  4279. INT 61 - Banyan VINES - "Soint" - SET USER COMPLETION FUNCTION
  4280.     AX = 0001h subfn 000Bh
  4281.     DS:DX -> communications control block (function 000Bh)
  4282. Return: AX = status (00h-0Ah,A2h) (see AX=0001h/SF=0005h)
  4283. Notes:    BANYAN can use any interrupt from 60h through 66h.  The Banyan
  4284.       interrupt handler is identified by the string "BANV" in the four
  4285.       bytes immediately preceding the interrupt handler
  4286.     FAR user function is invoked with SS,DS, and ES set to segment of
  4287.       control block, and with the stack containing
  4288.         DWORD    return address
  4289.         WORD    argument pointer (sosend or sorec argument block)
  4290.         WORD    error return code
  4291.             0000h argument pointer is valid
  4292.             00A3h timeout
  4293. SeeAlso: AX=0001h/SF=0005h,AX=0001h/SF=0008h
  4294.  
  4295. Format of control block:
  4296. Offset    Size    Description
  4297.  00h    WORD    000Bh
  4298.  02h    WORD    pointer to argument block (see below)
  4299.  04h    WORD    error return code
  4300.  06h  2 BYTEs    reserved
  4301.  08h    WORD    user CS register
  4302.  
  4303. Format of argument block:
  4304. Offset    Size    Description
  4305.  00h    WORD    pointer to user interrupt function    
  4306.  02h    WORD    pointer to user stack
  4307.  04h    WORD    initial timeout value in multiples of 200ms, FFFFh = infinite
  4308. --------V-610001-----------------------------
  4309. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - CENTER ZOOM WINDOW
  4310.     AX = 0001h
  4311.     BX = X coordinate to center
  4312.     CX = Y coordinate to center
  4313. Notes:    Positions the zoom window such that the specified window-relative
  4314.       coordinates appear as close as possible to the center of the
  4315.       display.  Useful for scrolling and panning.
  4316.     INT 61h is the default interrupt; the actual interrupt number can be
  4317.       obtained by calling INT 16/AH=FFh
  4318.     not all vendors include the Tseng TSR which supports these functions
  4319. SeeAlso: INT 16/AH=FFh"OPTIMA",INT 61/AX=0000h"OPTIMA",INT 61/AX=0002h"OPTIMA"
  4320. SeeAlso: INT 61/AX=0005h"OPTIMA"
  4321. --------I-610002-----------------------------
  4322. INT 61 - Banyan VINES - 3270 INTERFACE
  4323.     AX = 0002h
  4324.     BH = function
  4325.         00h "pi2reset"  reset 3270/SNA or 3270/BSC driver
  4326.         02h "pi2bsc" (3270/BSC only)
  4327.         03h    "pi2get"    get information stored in 3270 resident driver
  4328.         04h "pi2put"    store information in 3270 resident driver
  4329.         05h "pi2gcur"   get current screen position
  4330.         07h "pi2sdat"   send data keystroke
  4331.         08h "pi2scom"   send command keystroke
  4332.         0Ah "pi2field"  get field info for arbitrary screen positions
  4333.         0Fh "pi2stat"   get logical unit/device status
  4334.         12h "pi2nlus"   determine logical unit/device assignment
  4335.         13h "pi2gate"   specifies comm port address to gateway service
  4336.         14h "pi2attach" attach a logical unit/device
  4337.         15h "pi2sdev"   save logical unit/device info in resident driver
  4338.                 (not supported in >3.0)
  4339.         16h "pi2gdev"   get device information (not supported in >3.0)
  4340.         17h "pi2luinfo" get info about specific logical unit/device
  4341.         18h "pi2gerr"   get finer error detail
  4342.         19h "pi2dhold"  (3270/SNA only)  holds a 3270 device
  4343.         1Ah "pi2shut"   release memory-resident module
  4344.         1Ch "pi2sprof"  save profile info in res driver (not supp in >3.0)
  4345.         1Dh "pi2gprof"  get prevsly stored profile info (not supp in >3.0)
  4346.     DS:CX -> argument block (except BH=00h,1Ah)
  4347. Return: AX = status (see below)
  4348. Notes:    Either 3270/SNA or 3270/BSC interface may use AX=0002h, depending on
  4349.       which is loaded first.  The other interface will use AX=000Ah
  4350.     Status codes greater than 63h indicate an inconsistency in the 3270/SNA
  4351.       or 3270/BSC resident driver, which must be reloaded by the user
  4352.  
  4353. Values for status:
  4354.  0000h successful
  4355.  000Bh invalid parameter or data does not fit data area
  4356.  000Ch another code path currently active in resident driver
  4357.  000Dh operation currently not allowed
  4358.  0032h encountered connection disconnect error
  4359.  0033h encountered "sosend" completion error
  4360.  0034h encountered "sosend" communication error
  4361.  0035h attach request refused.  extended error info via "pi2gerr":
  4362.     01h resource unavailable
  4363.     02h invalid type
  4364.     03h version mismatch
  4365.     04h invalid logical unit number
  4366.     05h error during ARL processing
  4367.     06h no access for user
  4368.  0071h encountered "sosock" error
  4369.  0072h encountered unrecognizable error
  4370.  0073h encountered "sowait" error (extended info via "pi2gerr")
  4371.  0074h encountered invalid type-of-request on "sowait"
  4372.  0075h encountered "sorec" error (extended info via "pi2gerr")
  4373.  0076h encountered "sorec" completion error (ext info via "pi2gerr")
  4374.  0077h encountered connection request
  4375.  0078h encountered unrecognizable data
  4376.  0079h encountered unknown connection ID (ext info via "pi2gerr")
  4377.  
  4378. Format of argument block for BH=03h,04h:
  4379. Offset    Size    Description
  4380.  00h    WORD    size of data area (max 256)
  4381.  02h  N BYTEs    data area
  4382.  
  4383. Format of argument block for BH=05h:
  4384. Offset    Size    Description
  4385.  00h    WORD    logical unit/device number
  4386.  02h    WORD    pointer to WORD buffer for cursor index
  4387.  04h    WORD    pointer to BYTE buffer for current field attribute
  4388.  
  4389. Format of argument block for BH=07h:
  4390. Offset    Size    Description
  4391.  00h    WORD    logical unit/device number
  4392.  02h    WORD    ASCII data byte
  4393.  04h    WORD    pointer to WORD count of characters which will need updating
  4394.  
  4395. Format of argument block for BH=08h:
  4396. Offset    Size    Description
  4397.  00h    WORD    logical unit/device number
  4398.  02h    WORD    keystroke
  4399.         0000h Enter
  4400.         0001h Clear
  4401.         0002h PA1
  4402.         0003h PA2
  4403.         0004h PA3
  4404.         0005h PF1
  4405.         ...
  4406.         001Ch PF24
  4407.         001Dh CSELECT (cursor select)
  4408.         001Eh Insert
  4409.         001Fh Delete
  4410.         0020h EOField
  4411.         0021h EINPUT (erase input)
  4412.         0022h Reset
  4413.         0023h Attention
  4414.         0024h SysReq
  4415.         0025h Duplicate
  4416.         0026h Fieldmark
  4417.         0027h Home
  4418.         0028h NextLine
  4419.         0029h Tab
  4420.         002Ah BackTab
  4421.         002Bh cursor up
  4422.         002Ch cursor down
  4423.         002Dh cursor right
  4424.         002Eh cursor left
  4425.         002Fh double cursor right
  4426.         0030h double cursor left
  4427.         0031h PRINT
  4428.         0032h CANCEL
  4429.         0033h Backspace
  4430.  
  4431. Format of argument block for BH=0Ah:
  4432. Offset    Size    Description
  4433.  00h    WORD    logical unit/device number
  4434.  02h    WORD    screen index
  4435.  04h    WORD    pointer to WORD buffer for field length
  4436.  06h    WORD    pointer to WORD buffer for offset in screen of field start
  4437.  
  4438. Format of argument block for BH=0Fh:
  4439. Offset    Size    Description
  4440.  00h    WORD    logical unit/device number
  4441.  02h    WORD    clear mask (clear these bits of status after returning status)
  4442.  04h    WORD    pointer to WORD buffer for device status (see below)
  4443.  
  4444. Bitfields for device status:
  4445.  bit 10    status modified
  4446.  bit 9    buffer modified
  4447.  bit 8    set cursor
  4448.  bit 5    sound alarm
  4449.  bits 1-0  size of print line for printer logical units
  4450.     00  unformatted line
  4451.     01  40-character line
  4452.     10  64-character line
  4453.     11  80-character line
  4454.  
  4455. Format of argument block for BH=12h:
  4456. Offset    Size    Description
  4457.  00h    WORD    pointer to WORD buffer for number of logical units or devices
  4458.  02h    WORD    pointer to WORD buffer for version number
  4459.  04h    WORD    pointer to 64-byte buffer for logical unit/device list
  4460.  
  4461. Format of argument block for BH=13h:
  4462. Offset    Size    Description
  4463.  00h 16 BYTEs    communications port address (see AX=0001h#"Sosock")
  4464.  
  4465. Format of argument block for BH=14h:
  4466. Offset    Size    Description
  4467.  00h    WORD    logical unit/device number 
  4468.         0000h attach any free device of the specified type
  4469.  02h    WORD    logical unit/device type
  4470.         (3270/SNA) 01h, 02h, or 03h
  4471.         (3270/BSC) 02h display
  4472.         (3270/BSC) 03h printer
  4473.  04h    WORD    pointer to WORD buffer for attached logical unit/device number
  4474.  
  4475. Format of argument block for BH=16h:
  4476. Offset    Size    Description
  4477.  00h    WORD    pointer to 18-byte buffer for device block (see below)
  4478.         first WORD must be set to desired logical unit/device number
  4479.  
  4480. Format of argument block for BH=17h:
  4481. Offset    Size    Description
  4482.  00h    WORD    logical unit/device number
  4483.  02h    WORD    pointer to information block in caller's DS (see below)
  4484.  
  4485. Format of argument block for BH=18h:
  4486. Offset    Size    Description
  4487.  00h    WORD    pointer to WORD buffer for major error code
  4488.  02h    WORD    pointer to WORD buffer for minor error code
  4489.  
  4490. Format of argument block for BH=19h:
  4491. Offset    Size    Description
  4492.  00h    WORD    logical unit/device number
  4493.  
  4494. Format of argument block for BH=1Ch,1Dh:
  4495. Offset    Size    Description
  4496.  00h    WORD    pointer to profile block in caller's DS (see below)
  4497.  
  4498. Format of device block, argument block for BH=15h:
  4499. Offset    Size    Description
  4500.  00h    WORD    logical unit/device number
  4501.  02h    WORD    logical unit/device type
  4502.  04h    WORD    display model number
  4503.  06h    WORD    numeric checking
  4504.  08h    WORD    status line
  4505.  0Ah    BYTE    unprotected normal field attribute
  4506.  0Bh    BYTE    unprotected intensified field attribute
  4507.  0Ch    BYTE    protected normal field attribute
  4508.  0Dh    BYTE    protected intensified field attribute
  4509.  0Eh    WORD    reserved
  4510.  10h    WORD    printer port number
  4511.  
  4512. Format of information block:
  4513. Offset    Size    Description
  4514.  00h    WORD    device model number
  4515.  02h    DWORD    screen buffer pointer
  4516.  06h    DWORD    status line pointer (see below)
  4517.  0Ah    DWORD    reserved
  4518.  
  4519. Format of status line:
  4520. Offset    Size    Description
  4521.  00h    BYTE    comm line status
  4522.         00h inactive
  4523.         01h active
  4524.  01h    BYTE    activation level
  4525.         01h physical unit activated
  4526.         02h logical unit also activated
  4527.         03h session is bound
  4528.  02h    BYTE    data traffic state
  4529.         00h inactive
  4530.         01h active
  4531.  03h    BYTE    screen ownership
  4532.         00h SLU->PLU sessoin owns screen
  4533.         01h SLU->SSCP session owns screen
  4534.  04h    BYTE    keyboard status (see below)
  4535.  05h    BYTE    insert mode
  4536.         01h if in insert mode
  4537.  06h    BYTE    numeric
  4538.         01h if current screen buffer is numeric only
  4539.  07h    BYTE    printer status
  4540.         00h printer not assigned
  4541.         01h printer is inactive
  4542.         02h printer error
  4543.         03h currently printing
  4544.         04h printer is busy
  4545.         05h printer is very busy
  4546.  08h    BYTE    printer assignment
  4547.  09h    BYTE    maximum size of network name
  4548.  0Ah  N BYTEs    ASCIZ network name
  4549.     BYTE    maximum size of message window
  4550.       M BYTEs    null-terminated message window
  4551.     BYTE    code set
  4552.         00h EBCDIC
  4553.         01h ASCII
  4554.       M BYTEs    extended attributes
  4555.         01h extended attributes are in effect (stored at screen+1920)
  4556.             each extended attribute specifies
  4557.             bits 0,1: 00=normal, 01=blink, 10=reverse, 11=underscor
  4558.             bits 2-4: 000=default,001=blue,010=red,011=pink,
  4559.                   100=green,101=turquoise,110=yellow,111=white
  4560.     BYTE    extended color
  4561.         01h other than base color is in effect
  4562.  
  4563. Values for keyboard status:
  4564.  00h    UNLOCK - ready to accept data
  4565.  01h    TIME - aid was struck
  4566.  02h    SYSTEM - received response no restore
  4567.  03h    FUNCTION - unavailable keyboard function
  4568.  04h    INPUT - not currently used
  4569.  05h    ENDFIELD - field filled in insert mode
  4570.  06h    PROTECTED - attempt to enter in protected field
  4571.  07h    NUMERIC - attempt to enter in numeric field
  4572.  08h    PROGRAM - error in outbound data stream
  4573.  
  4574. Format of profile block:
  4575. Offset    Size    Description
  4576.  00h 64 BYTEs    gateway service name
  4577.  40h 16 BYTEs    gateway comm port address
  4578.  50h    WORD    primary logical unit number
  4579.  52h    WORD    secondary logical unit type
  4580.  54h    WORD    secondary logical unit number
  4581.  56h    WORD    printer assignment
  4582.  58h 50 BYTEs    keyboard definitions filename
  4583. --------V-610002-----------------------------
  4584. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - END ZOOM
  4585.     AX = 0002h
  4586. Notes:    switches off zoom and returns window to its original state
  4587.     INT 61h is the default interrupt; the actual interrupt number can be
  4588.       obtained by calling INT 16/AH=FFh
  4589.     not all vendors include the Tseng TSR which supports these functions
  4590. SeeAlso: INT 16/AH=FFh"OPTIMA",INT 61/AX=0000h"OPTIMA"
  4591. --------N-610003SF00-------------------------
  4592. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - INIT USER BUFFER PTR INFO
  4593.     AX = 0003h subfn 00h
  4594.     DS:BX -> argument block (see below)
  4595. Return: AX = status (see below)
  4596. SeeAlso: AX=0003h/SF=06h,AX=0003h/SF=08h,AX=0003h/SF=0Dh
  4597.  
  4598. Values for status:
  4599.  0000h successful
  4600.  000Bh invalid session ID
  4601.  000Ch session not active
  4602.  000Dh invalid request type
  4603.  000Eh invalid parameters
  4604.  000Fh out of heap space
  4605.  0010h timeout on send
  4606.  0011h Banyan communications error
  4607.  0012h session not waiting for host
  4608.  0013h session is active
  4609.  0014h duplicate suspend session request
  4610.  0015h no session suspended
  4611.  0016h ring data buffer full
  4612.  0017h printer error encountered
  4613.  0018h Banyan communications error
  4614.  0019h unable to make connection
  4615.  001Ah no ring buffer specified at startup
  4616.  001Bh service is down
  4617.  001Ch invalid service name
  4618.  001Dh service is closed
  4619.  001Eh invalid connection name
  4620.  001Fh max session limit reached for service
  4621.  0020h access rights list for connection/dialout does not include this user
  4622.  0021h service not responding
  4623.  0022h missing telephone number
  4624.  
  4625. Format of argument block:
  4626. Offset    Size    Description
  4627.  00h    BYTE    session ID (00h)
  4628.  01h    BYTE    00h (func "initialize user buffer pointer information area")
  4629.  02h    WORD    -> user buffer ptr info area in caller's current DS (see below)
  4630.  
  4631. Format of user buffer ptr info area:
  4632. Offset    Size    Description
  4633.  00h    WORD    flags
  4634.         0000h don't read interface's data buffer
  4635.         0001h read data buffer
  4636.  02h    DWORD    pointer to ring buffer
  4637.  06h    WORD    length of ring buffer
  4638.  08h    WORD    ring buffer offset to last byte read by caller
  4639.  0Ah    DWORD    pointer to WORD containing offset of last byte
  4640.           in ring buffer filled
  4641.  0Eh    DWORD    pointer to screen buffer
  4642.  12h    DWORD    pointer to field containing cursor position
  4643.  16h    DWORD    pointer to terminal status area (see below)
  4644.  
  4645. Format of terminal status area:
  4646. Offset    Size    Description
  4647.  00h    BYTE    status of session: 4Eh=oNline, 46h=oFfline, 57h=Waiting
  4648.  01h    BYTE    terminal type (00h=VT100, 01h=TTY, 02h=VT52, 03h=IBM3101)
  4649.  02h    BYTE    current keypad mode (VT100,VT52 only)
  4650.         4Eh ("N") numeric mode
  4651.         41h ("A") application mode
  4652.  03h  4 BYTEs    current state of LEDs (VT100 only)
  4653.         00h off
  4654.         01h on
  4655.  07h    WORD    line error count
  4656.  09h    WORD    primary error code (see below)
  4657.  0Bh    WORD    secondary error code
  4658.  
  4659. Values for primary error code:
  4660.  0000h no error
  4661.  0001h unable to make connection
  4662.  0002h communications error, restart session
  4663.  0003h async terminal emulation service unavailable
  4664.  0004h lost carrier
  4665.  0005h all matching lines busy
  4666.  0006h no lines defined for connection name
  4667.  0007h no dial lines available on server
  4668.  0008h no matching dial lines available
  4669.  0009h out of heap space
  4670.  000Ah service error encountered
  4671.  000Bh timed out waiting to connect
  4672.  000Ch communications error
  4673.  000Dh communications error
  4674.  000Eh host wants file transferred to/from PC
  4675.  000Fh host software changed session parameter
  4676.  0010h host software changed tap settings
  4677.  0011h host software changed LED indicator
  4678.  0012h host software changed display background (secondary error code 00h for
  4679.      white on black, 01h for black on white)
  4680.  0013h host software changed display option (secondary error code 00h for off,
  4681.      01h for on)
  4682.  0014h communications error
  4683.  0015h communications error
  4684.  0016h unable to make connection
  4685.  0017h unable to make connection
  4686. --------N-610003SF01-------------------------
  4687. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SEND TO HOST
  4688.     AX = 0003h subfn 01h
  4689.     DS:BX -> argument block (see below)
  4690. Return: AX = status (see AX=0003h/SF=00h)
  4691. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=02h,AX=0003h/SF=14h
  4692.  
  4693. Format of argument block:
  4694. Offset    Size    Description
  4695.  00h    BYTE    session ID (00h)
  4696.  01h    BYTE    01h (function "send to host")
  4697.  02h    BYTE    type
  4698.         00h ASCII byte
  4699.         01h ASCII string
  4700.         02h terminal function code
  4701.         03h up arrow
  4702.         04h down arrow
  4703.         05h left arrow
  4704.         06h right arrow
  4705.         07h break
  4706.  03h  N BYTEs    type-specific info (see below)
  4707.  
  4708. Format of type-specific info:
  4709. Offset    Size    Description
  4710. ---ASCII byte---
  4711.  03h    BYTE    byte to send to host
  4712. ---ASCII string---
  4713.  03h    WORD    length of string
  4714.  05h    WORD    pointer to string
  4715. ---terminal function code (VT52/VT100)---
  4716.  03h    BYTE    function code
  4717.         00h keypad 0
  4718.         01h keypad 1
  4719.         ...
  4720.         09h keypad 9
  4721.         0Ah keypad -
  4722.         0Bh keypad ,
  4723.         0Ch keypad .
  4724.         0Dh keypad ENTER
  4725.         0Eh PF1
  4726.         0Fh PF2
  4727.         10h PF3
  4728.         11h PF4
  4729. ---terminal function code (IBM3101)---
  4730.  03h    BYTE    function code
  4731.         00h PF1
  4732.         ...
  4733.         07h PF8
  4734.         08h Home
  4735. --------N-610003SF02-------------------------
  4736. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - "CONTROL MONITOR"
  4737.     AX = 0003h subfn 02h
  4738.     DS:BX -> argument block (see below)
  4739. Return: AX = status (see AX=0003h/SF=00h)
  4740. SeeAlso: AX=0003h/SF=03h,AX=0003h/SF=05h
  4741.  
  4742. Format of argument block:
  4743. Offset    Size    Description
  4744.  00h    BYTE    session ID (00h)
  4745.  01h    BYTE    02h (function "control monitor")
  4746.  02h    BYTE    display flag
  4747.         00h don't display data received from host
  4748.         01h display data
  4749. --------N-610003SF03-------------------------
  4750. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - "FLOW CONTROL DATA"
  4751.     AX = 0003h subfn 03h
  4752.     DS:BX -> argument block (see below)
  4753. Return: AX = status (see AX=0003h/SF=00h)
  4754. Desc:    this function permits the caller to freeze/unfreeze the display and
  4755.       the ring buffer
  4756. SeeAlso: AX=0003h/SF=02h,AX=0003h/SF=06h
  4757.  
  4758. Format of argument block:
  4759. Offset    Size    Description
  4760.  00h    BYTE    session ID (00h)
  4761.  01h    BYTE    03h (function "flow control data")
  4762.  02h    BYTE    flow control flag
  4763.         00h allow characters to be put into display or ring buffer
  4764.         01h don't place any more characters into display or ring buffer
  4765. --------N-610003SF04-------------------------
  4766. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - END ACTIVE SESSION
  4767.     AX = 0003h subfn 04h
  4768.     DS:BX -> argument block (see below)
  4769. Return: AX = status (see AX=0003h/SF=00h)
  4770. SeeAlso: AX=0003h/SF=0Ah,AX=0003h/SF=0Dh,AX=0003h/SF=0Fh
  4771.  
  4772. Format of argument block:
  4773. Offset    Size    Description
  4774.  00h    BYTE    session ID (00h)
  4775.  01h    BYTE    04h (function "end active session")
  4776. --------N-610003SF05-------------------------
  4777. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SET SESSION PARAMETER
  4778.     AX = 0003h subfn 05h
  4779.     DS:BX -> argument block (see below)
  4780. Return: AX = status (see AX=0003h/SF=00h)
  4781. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=06h,AX=0003h/SF=08h
  4782.  
  4783. Format of argument block:
  4784. Offset    Size    Description
  4785.  00h    BYTE    session ID (00h)
  4786.  01h    BYTE    05h (function "set session parameter")
  4787.  02h    BYTE    parameter number (see below)
  4788.  03h    BYTE    new parameter value
  4789.  
  4790. Values for parameter number:
  4791.  00h line speed (00h=any, 01h=50, 02h=110, 03h=134.5, 04h=150,
  4792.         05h=300,06h=600,07h=1200,08h=2400,09h=4800, 0Ah=9600)
  4793.  01h parity (00h=none, 01h=odd, 02h=even)
  4794.  02h duplex (00h=full, 01h=half)
  4795.  03h character size (00h=7 bits, 01h=8 bits)
  4796.  04h stop bits (00h=1, 01h=2)
  4797.  05h XON/XOFF flow control (00h=no, 01h=yes)
  4798.  07h intercharacter delay in tenths of a second
  4799.  08h interline delay in tenths of a second
  4800.  09h auto linefeed (00h=no, 01h=yes)
  4801.  0Ah filter control characters (00h=no, 01h=yes)
  4802.  0Bh terminal type (00h=VT100,01h=glassTTY,02h=VT52,03h=IBM3101)
  4803.  0Ch auto wrap (00h=no, 01h=yes)
  4804.  0Dh cursor shape (00h=underscore, 01h=block)
  4805.  0Eh character set (00h=UK, 01h=US ASCII)
  4806.  0Fh printer port (00h=LPT1, 01h=LPT2, 02h=LPT3)
  4807. --------N-610003SF06-------------------------
  4808. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET SESSION PARAMETER
  4809.     AX = 0003h subfn 06h
  4810.     DS:BX -> argument block (see below)
  4811. Return: AX = status (see AX=0003h/SF=00h)
  4812. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=05h,AX=0003h/SF=07h
  4813.  
  4814. Format of argument block:
  4815. Offset    Size    Description
  4816.  00h    BYTE    session ID (00h)
  4817.  01h    BYTE    06h (function "get session parameter")
  4818.  02h    BYTE    parameter number (see AX=0003h/SF=05h)
  4819.  03h    BYTE    (return) current parameter value
  4820. --------N-610003SF07-------------------------
  4821. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SET TAB SETTINGS
  4822.     AX = 0003h subfn 07h
  4823.     DS:BX -> argument block (see below)
  4824. Return: AX = status (see AX=0003h/SF=00h)
  4825. SeeAlso: AX=0003h/SF=05h,AX=0003h/SF=08h
  4826.  
  4827. Format of argument block:
  4828. Offset    Size    Description
  4829.  00h    BYTE    session ID (00h)
  4830.  01h    BYTE    07h (function "set tab settings")
  4831.  02h    WORD    pointer to 80-byte buffer in caller's current DS
  4832.           each byte = 00h if no tab, 01h if tab at that position
  4833. --------N-610003SF08-------------------------
  4834. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET TAB SETTINGS
  4835.     AX = 0003h subfn 08h
  4836.     DS:BX -> argument block (see below)
  4837. Return: AX = status (see AX=0003h/SF=00h)
  4838. SeeAlso: AX=0003h/SF=06h,AX=0003h/SF=07h
  4839.  
  4840. Format of argument block:
  4841. Offset    Size    Description
  4842.  00h    BYTE    session ID (00h)
  4843.  01h    BYTE    08h (function "get tab settings")
  4844.  02h    WORD    pointer to 80-byte buffer in caller's current DS
  4845.         each byte set to 00h if no tab, 01h if tab at that position
  4846. --------N-610003SF09-------------------------
  4847. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - REFRESH EMULATION SCREEN
  4848.     AX = 0003h subfn 09h
  4849.     DS:BX -> argument block (see below)
  4850. Return: AX = status (see AX=0003h/SF=00h)
  4851. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=0Bh
  4852.  
  4853. Format of argument block:
  4854. Offset    Size    Description
  4855.  00h    BYTE    session ID (00h)
  4856.  01h    BYTE    09h (function "refresh emulation screen")
  4857. --------N-610003SF0A-------------------------
  4858. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SUSPEND SESSION TEMPORARILY
  4859.     AX = 0003h subfn 0Ah
  4860.     DS:BX -> argument block (see below)
  4861. Return: AX = status (see AX=0003h/SF=00h)
  4862. SeeAlso: AX=0003h/SF=04h,AX=0003h/SF=09h,AX=0003h/SF=0Bh,AX=0003h/SF=0Dh
  4863.  
  4864. Format of argument block:
  4865. Offset    Size    Description
  4866.  00h    BYTE    session ID (00h)
  4867.  01h    BYTE    0Ah (function "suspend session temporarily")
  4868.  02h    WORD    size of session information to be saved
  4869.  04h    WORD    pointer to buffer in caller's DS
  4870. --------N-610003SF0B-------------------------
  4871. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - RESUME SUSPENDED SESSION
  4872.     AX = 0003h subfn 0Bh
  4873.     DS:BX -> argument block (see below)
  4874. Return: AX = status (see AX=0003h/SF=00h)
  4875. SeeAlso: AX=0003h/SF=09h,AX=0003h/SF=0Ah
  4876.  
  4877. Format of argument block:
  4878. Offset    Size    Description
  4879.  00h    BYTE    session ID (00h)
  4880.  01h    BYTE    0Bh (function "restore previously suspended session")
  4881.  02h    WORD    size of buffer into which session info is restored
  4882.  04h    WORD    pointer to buffer in caller's DS
  4883. --------N-610003SF0C-------------------------
  4884. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SET SCROLL LOCK CHECKING
  4885.     AX = 0003h subfn 0Ch
  4886.     DS:BX -> argument block (see below)
  4887. Return: AX = status (see AX=0003h/SF=00h)
  4888. SeeAlso: AX=0003h/SF=00h
  4889.  
  4890. Format of argument block:
  4891. Offset    Size    Description
  4892.  00h    BYTE    session ID (00h)
  4893.  01h    BYTE    0Ch (function "set state of scroll lock checking")
  4894.  02h    BYTE    check_scroll_lock flag
  4895.         00h off
  4896.         01h on (display of host data stopped while ScrollLock on)
  4897. --------N-610003SF0D-------------------------
  4898. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - EXIT EMULATION
  4899.     AX = 0003h subfn 0Dh
  4900.     DS:BX -> argument block (see below)
  4901. Return: AX = status (see AX=0003h/SF=00h)
  4902. SeeAlso: AX=0003h/SF=04h,AX=0003h/SF=0Ah
  4903.  
  4904. Format of argument block:
  4905. Offset    Size    Description
  4906.  00h    BYTE    session ID (00h)
  4907.  01h    BYTE    0Dh (function "exit emulation")
  4908. --------N-610003SF0E-------------------------
  4909. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - INTERRUPT ON CHAR FROM HOST
  4910.     AX = 0003h subfn 0Eh
  4911.     DS:BX -> argument block (see below)
  4912. Return: AX = status (see AX=0003h/SF=00h)
  4913. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=14h
  4914.  
  4915. Format of argument block:
  4916. Offset    Size    Description
  4917.  00h    BYTE    session ID (00h)
  4918.  01h    BYTE    0Eh (function "interrupt on character from host")
  4919.  02h    DWORD    pointer to routine to be called (0000h:0000h = don't call)
  4920.  06h    DWORD    stack pointer to use when call is made
  4921. --------N-610003SF0F-------------------------
  4922. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - START A SESSION
  4923.     AX = 0003h subfn 0Fh
  4924.     DS:BX -> argument block (see below)
  4925. Return: AX = status (see AX=0003h/SF=00h)
  4926. SeeAlso: AX=0003h/SF=04h,AX=0003h/SF=0Bh
  4927.  
  4928. Format of argument block:
  4929. Offset    Size    Description
  4930.  00h    BYTE    session ID (00h)
  4931.  01h    BYTE    0Fh (function "start a session")
  4932.  02h    WORD    pointer to information area in caller's current DS (see below)
  4933.  
  4934. Format of information area:
  4935. Offset    Size    Description
  4936.  00h    WORD    length of service name
  4937.  02h    WORD    pointer to service name in caller's DS
  4938.  04h    BYTE    type of connection (00h=connection name, 01h=dialout)
  4939.  05h    WORD    length of connection name/telephone number
  4940.  07h    WORD    pointer to connection name/telephone number
  4941. --------N-610003SF10-------------------------
  4942. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - START/STOP PRINTING
  4943.     AX = 0003h subfn 10h
  4944.     DS:BX -> argument block (see below)
  4945. Return: AX = status (see AX=0003h/SF=00h)
  4946. SeeAlso: AX=0003h/SF=06h,AX=0003h/SF=13h
  4947.  
  4948. Format of argument block:
  4949. Offset    Size    Description
  4950.  00h    BYTE    session ID (00h)
  4951.  01h    BYTE    10h (function "start/stop printing of data received from host)
  4952.  02h    WORD    print capture flag (00h=off, 01h=on)
  4953. --------N-610003SF11-------------------------
  4954. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET FILE TRANSFER PARAMETERS
  4955.     AX = 0003h subfn 11h
  4956.     DS:BX -> argument block (see below)
  4957. Return: AX = status (see AX=0003h/SF=00h)
  4958. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=12h
  4959.  
  4960. Format of argument block:
  4961. Offset    Size    Description
  4962.  00h    BYTE    session ID (00h)
  4963.  01h    BYTE    11h (function "get file transfer parameters")
  4964.  02h    WORD    pointer to info area in caller's current DS (see below)
  4965.  
  4966. Format of info area:
  4967. Offset    Size    Description
  4968.  00h    BYTE    protocol flag (00h none, 01h Kermit)
  4969.  01h    BYTE    direction flag (00h send, 01h receive)
  4970.  02h    BYTE    length of null-terminated PC filename
  4971.  03h    DWORD    pointer to null-terminated PC filename
  4972.  07h    BYTE    length of null-terminated host filename
  4973.  08h    DWORD    pointer to null-terminated host filename
  4974. --------N-610003SF12-------------------------
  4975. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET CONNECTION INFORMATION
  4976.     AX = 0003h subfn 12h
  4977.     DS:BX -> argument block (see below)
  4978. Return: AX = status (see AX=0003h/SF=00h)
  4979. SeeAlso: AX=0003h/SF=11h,AX=0003h/SF=15h
  4980.  
  4981. Format of argument block:
  4982. Offset    Size    Description
  4983.  00h    BYTE    session ID (00h)
  4984.  01h    BYTE    12h (function "get connection information")
  4985.  02h    WORD    offset of buffer for connection information (see below)
  4986.  
  4987. Format of connection information:
  4988. Offset    Size    Description
  4989.  00h    WORD    length of service name (returned)
  4990.  02h    WORD    pointer to 64-byte buffer for service name
  4991.  04h    BYTE    type of connection
  4992.         00h connection name
  4993.         01h dialout
  4994.  05h    WORD    length of connection name/telephone number
  4995.  07h    WORD    pointer to 64-byte buffer for name/telno
  4996.  09h    BYTE    server line number being used (returned)
  4997. --------N-610003SF13-------------------------
  4998. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - START/STOP TRACING TRAFFIC
  4999.     AX = 0003h subfn 13h
  5000.     DS:BX -> argument block (see below)
  5001. Return: AX = status (see AX=0003h/SF=00h)
  5002. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=0Eh
  5003.  
  5004. Format of argument block:
  5005. Offset    Size    Description
  5006.  00h    BYTE    session ID (00h)
  5007.  01h    BYTE    13h (function "start/stop tracing data traffic in session")
  5008.  02h    BYTE    trace flag (00h=off, 01h=on)
  5009. --------N-610003SF14-------------------------
  5010. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - INTERRUPT ON HOST MESSAGE
  5011.     AX = 0003h subfn 14h
  5012.     DS:BX -> argument block (see below)
  5013. Return: AX = status (see AX=0003h/SF=00h)
  5014. SeeAlso: AX=0003h/SF=0Eh
  5015.  
  5016. Format of argument block:
  5017. Offset    Size    Description
  5018.  00h    BYTE    session ID (00h)
  5019.  01h    BYTE    14h (function "interrupt on message from host")
  5020.  02h    DWORD    pointer to routine to be called (0000h:0000h = don't call)
  5021.  06h    DWORD    stack pointer to use when call is made
  5022. --------N-610003SF15-------------------------
  5023. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - RESET ERROR
  5024.     AX = 0003h subfn 15h
  5025.     DS:BX -> argument block (see below)
  5026. Return: AX = status (see AX=0003h/SF=00h)
  5027. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=12h
  5028.  
  5029. Format of argument block:
  5030. Offset    Size    Description
  5031.  00h    BYTE    session ID (00h)
  5032.  01h    BYTE    15h (function "reset error")
  5033. --------V-610003-----------------------------
  5034. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - REPORT ZOOM FACTOR
  5035.     AX = 0003h
  5036. Return: AX = zoom factor
  5037. Notes:    returns the current zoom factor
  5038.     INT 61h is the default interrupt; the actual interrupt number can be
  5039.       obtained by calling INT 16/AH=FFh
  5040.     not all vendors include the Tseng TSR which supports these functions
  5041. SeeAlso: INT 16/AH=FFh"OPTIMA",INT 61/AX=0000h"OPTIMA",INT 61/AX=0005h"OPTIMA"
  5042. --------N-610004-----------------------------
  5043. INT 61 - Banyan VINES - GET SERVER SERIAL NUMBER
  5044.     AX = 0004h
  5045.     DS:DX -> request block (function 0008h)
  5046. Return: AX = status
  5047.         0000h server ID returned in request block
  5048.         000Fh invalid drive
  5049.         0015h drive not ready
  5050.  
  5051. Format of request block:
  5052. Offset    Size    Description
  5053.  00h    WORD    0008h
  5054.  02h    WORD    drive number (0=default, 1=A, ...)
  5055.  04h  6 BYTEs    buffer for server ID
  5056. --------V-610004-----------------------------
  5057. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - ENTER SPECIFY MODE
  5058.     AX = 0004h
  5059. Notes:    Specify Mode is enabled by hot key (seeAlso below), and allows
  5060.       panning and zooming via the numeric keypad.
  5061.     INT 61 is the default interrupt; the actual interrupt number can be
  5062.       obtained by calling INT 16/AH=FFh
  5063.     not all vendors include the Tseng TSR which supports these functions
  5064. SeeAlso: INT 16/AH=FFh"OPTIMA",INT 61/AX=0000h"OPTIMA",INT 61/AX=0007h"OPTIMA"
  5065. --------N-610005-----------------------------
  5066. INT 61 - Banyan VINES - PRINTER CONTROL
  5067.     AX = 0005h
  5068.     DS:DX -> request block
  5069. Return: AX = status
  5070.         0000h successful
  5071.         0001h network software not installed or incompatible
  5072. SeeAlso: INT 2F/AX=D702h
  5073.  
  5074. Format of request block:
  5075. Offset    Size    Description
  5076.  00h    WORD    function
  5077.         0201h "endspool" all data for a print job has been sent
  5078.         0205h "getactive" get currently active printer port
  5079.  02h    WORD    number of active port (1-3)
  5080.  04h    WORD    ??? (0 for func 0201h, 3 for func 0205h)
  5081.  06h    WORD    0000h
  5082. --------V-610005-----------------------------
  5083. INT 61 - OPTIMA 1024 VGA-Sync - QUERY ZOOM WINDOW
  5084.     AX = 0005h
  5085.     BX:CX -> buffer for window parameters (see below)
  5086. Notes:    INT 61 is the default interrupt; the actual interrupt number can be
  5087.       obtained by calling INT 16/AH=FFh
  5088.     not all vendors include the Tseng TSR which supports these functions
  5089. SeeAlso: INT 16/AH=FFh"OPTIMA",INT 61/AX=0000h"OPTIMA",INT 61/AX=0003h"OPTIMA"
  5090. SeeAlso: INT 61/AX=0006h"OPTIMA"
  5091.  
  5092. Format of window parameters:
  5093. Offset    Size    Description
  5094.  00h    WORD    X start of zoom window
  5095.  02h    WORD    Y start of zoom window
  5096.  04h    WORD    X end of zoom window
  5097.  06h    WORD    Y end of zoom window
  5098.  08h    WORD    current zoom factor
  5099.  0Ah    WORD    zoom offset start X
  5100.  0Ch    WORD    zoom offset start Y
  5101. --------V-610006-----------------------------
  5102. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - SET ZOOM WINDOW
  5103.     AX = 0006h
  5104.     BX:CX -> zoom window description (see below)
  5105. Notes:    width of zoom window must be a multiple of the pixel replication
  5106.       factor
  5107.     INT 61 is the default interrupt; the actual interrupt number can be
  5108.       obtained by calling INT 16/AH=FFh
  5109.     not all vendors include the Tseng TSR which supports these functions
  5110. SeeAlso: INT 16/AH=FFh"OPTIMA",INT 61/AX=0000h"OPTIMA",INT 61/AX=0001h"OPTIMA"
  5111. SeeAlso: INT 61/AX=0005h"OPTIMA",INT 61/AX=0008h"OPTIMA"
  5112.  
  5113. Format of zoom window description:
  5114. Offset    Size    Description
  5115.  00h    WORD    X start of zoom window
  5116.  02h    WORD    Y start of zoom window
  5117.  04h    WORD    X end of zoom window
  5118.  06h    WORD    Y end of zoom window
  5119. --------V-610007-----------------------------
  5120. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - QUERY APPLICATION KEY
  5121.     AX = 0007h
  5122. Return: AX = current state (0000h/0001h)
  5123. Desc:    returns the current toggle state of the application (END) key in
  5124.       specify mode. E.g. in the OPTIMA AutoCAD driver, 0 means AutoCAD
  5125.       calls INT 61/AX=0001h every time the crosshair cursor moves.
  5126. Notes:    In specify mode, the END key has been reserved for applications.
  5127.     INT 61 is the default interrupt; the actual interrupt number can be
  5128.       obtained by calling INT 16/AH=FFh
  5129.     not all vendors include the Tseng TSR which supports these functions
  5130. SeeAlso: INT 16/AH=FFh"OPTIMA",INT 61/AX=0000h"OPTIMA",INT 61/AX=0001h"OPTIMA"
  5131. SeeAlso: INT 61/AX=0004h"OPTIMA",INT 7A"AutoCAD"
  5132. --------N-610007BX0002-----------------------
  5133. INT 61 - Banyan VINES - GET PORTS FOR A SERVICE
  5134.     AX = 0007h
  5135.     BX = 0002h
  5136.     DS:DX -> StreetTalk service name
  5137.     DS:DI -> port record block (see below)
  5138. Return: AX = status (see below)
  5139. SeeAlso: AX=0007h/BX=0004h
  5140.  
  5141. Values for status:
  5142.  0000h successful
  5143.  0001h PC network software not installed or incompatible
  5144.  03E9h incorrect name syntax
  5145.  03EAh organization name too long
  5146.  03EBh group name too long
  5147.  03ECh item name too long
  5148.  03EDh StreetTalk name too long
  5149.  03F3h organization not found
  5150.  03F4h group not found
  5151.  03F5h StreetTalk name not found
  5152.  03F8h not a StreetTalk name
  5153.  0409h modify access denied
  5154.  040Dh appropriate StreetTalk name unavailable
  5155.  
  5156. Format of port record block:
  5157. Offset    Size    Description
  5158.  00h    WORD    number of 17-byte elements
  5159.  02h 17 BYTEs    element (byte 00h = input port type, bytes 01h-10h = port)
  5160.         (see AX=0001h#"Sosock" for port format)
  5161. --------N-610007BX0004-----------------------
  5162. INT 61 - Banyan VINES - SET PORTS FOR A SERVICE
  5163.     AX = 0007h
  5164.     BX = 0004h
  5165.     DS:DX -> StreetTalk name of service
  5166.     DS:DI -> port record block (see below)
  5167. Return: AX = status (see AX=0007h/BX=0002h)
  5168. SeeAlso: AX=0007h/BX=0002h
  5169.  
  5170. Format of port record block:
  5171. Offset    Size    Description
  5172.  00h    WORD    number of 17-byte elements
  5173.  02h 17 BYTEs    element: byte 00h = input port type, 01h-10h = port
  5174.         (see AX=0001h#"Sosock" for port format)
  5175. --------N-610007BX0005-----------------------
  5176. INT 61 - Banyan VINES - GET USER NAME
  5177.     AX = 0007h
  5178.     BX = 0005h
  5179.     DS:DX -> 64-byte buffer for user's StreetTalk name
  5180. Return: AX = status
  5181.         0000h successful
  5182.         0001h network software not installed or incompatible
  5183. Note:    if no user logged in, first byte of returned name will be 00h
  5184. SeeAlso: AX=0007h/BX=0007h
  5185. --------N-610007BX0006-----------------------
  5186. INT 61 - Banyan VINES - TRANSLATE ERROR INTO ASCII STRING
  5187.     AX = 0007h
  5188.     BX = 0006h
  5189.     SI = error code (>100)
  5190.     DS:DX -> 80-byte buffer for error text
  5191. Return: AX = status
  5192.         0000h successful
  5193.         0001h network software not installed or incompatible        
  5194. --------N-610007BX0007-----------------------
  5195. INT 61 - Banyan VINES - VERIFY EXISTENCE OF NAME AND RETURN CANONICAL FORM
  5196.     AX = 0007h
  5197.     BX = 0007h
  5198.     DS:DX -> NiceName block (see below)
  5199. Return: AX = status (see AX=0007h/BX=0002h)
  5200. SeeAlso: AX=0007h/BX=0005h,AX=0007h/BX=0008h
  5201.  
  5202. Format of NiceName block:
  5203. Offset    Size    Description
  5204.  00h    WORD    type of name
  5205.         0064h organization
  5206.         00C8h group
  5207.         012Ch item
  5208.  02h    WORD    pointer to ASCIZ input name
  5209.  04h    WORD    pointer to 64-byte buffer for output name
  5210. --------N-610007BX0008-----------------------
  5211. INT 61 - Banyan VINES - ENUMERATE StreetTalk NAMES
  5212.     AX = 0007h
  5213.     BX = 0008h
  5214.     DS:DX -> enumerate block (see below)
  5215. Return: AX = status
  5216.         0000h successful
  5217.         0411h all matching names have been returned
  5218.         0412h some groups unavailable, all available matches returned
  5219. Note:    each program using this call should continue until a nonzero status
  5220.       is returned; otherwise, some resources will not be freed for several
  5221.       hours
  5222. SeeAlso: AX=0007h/BX=0007h
  5223.  
  5224. Format of enumerate block:
  5225. Offset    Size    Description
  5226.  00h    WORD    return code
  5227.  02h    WORD    pointer to pattern string
  5228.  04h    WORD    enumerate type
  5229.         0064h organization
  5230.         00C8h group
  5231.         012Ch item
  5232.  06h    WORD    enumerate class
  5233.         0000h unspecified (return all matching items)
  5234.         0001h user names
  5235.         0002h service names
  5236.         0003h list names
  5237.         0004h nicknames
  5238.  08h    WORD    pointer to category criteria block (see below) or 0
  5239.  0Ah    WORD    pointer to array of 64-byte returned names
  5240.  0Ch    WORD    number of names returned
  5241.  0Eh  6 BYTEs    reserved for subsequent enumerated calls (set to zeros on first
  5242.           call)
  5243.  
  5244. Format of category criteria block:
  5245. Offset    Size    Description
  5246.  00h    WORD    exclude flag
  5247.         0000h return only items with the specified categories
  5248.         0001h return all items except those with the given categories
  5249.  02h    WORD    number of categories
  5250.  04h    WORD    category 1 value
  5251.  06h    WORD    category 2 value
  5252.         ...
  5253.  
  5254. Values for common service categories:
  5255.  0002h file service
  5256.  0003h print service
  5257.  0004h mail service
  5258.  0005h StreetTalk
  5259.  0006h time service
  5260.  0008h semaphore service
  5261.  0009h 3270/SNA service
  5262.  000Ah asynchronous terminal emulation service
  5263.  000Ch NETBIOS service
  5264.  000Dh PC-based service
  5265. --------V-610008-----------------------------
  5266. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - SET ZOOM OFFSET
  5267.     AX = 0008h
  5268.     BX = X start of zoom offset
  5269.     CX = Y start of zoom offset
  5270. Notes:    specifies the first byte of video memory to appear in the zoom window
  5271.     INT 61 is the default interrupt; the actual interrupt number can be
  5272.       obtained by calling INT 16/AH=FFh
  5273.     not all vendors include the Tseng TSR which supports these functions
  5274. SeeAlso: INT 16/AH=FFh"OPTIMA",INT 61/AX=0000h"OPTIMA",INT 61/AX=0006h"OPTIMA"
  5275. --------N-610008BX0002-----------------------
  5276. INT 61 - Banyan VINES - POST MESSAGE ON LOCAL DISPLAY
  5277.     AX = 0008h
  5278.     BX = 0002h
  5279.     CX = flags
  5280.         bit 0: message will remain on screen until user presses ^X
  5281.         bit 1: ring bell after displaying message
  5282.         bit 2: blink
  5283.     DS:DX -> ASCIZ string to display (only first 80 chars used)
  5284. Return: AX = status
  5285.         0000h successful
  5286.         000Bh message display function currently busy
  5287.         000Ch message queue full
  5288. Note:    queues up to three messages to be displayed on the bottom line
  5289. SeeAlso: AX=0008h/BX=0003h
  5290. --------N-610008BX0003-----------------------
  5291. INT 61 - Banyan VINES - INTERCEPT VINES 25th-LINE MESSAGES AT LOCAL PC
  5292.     AX = 0008h
  5293.     BX = 0003h
  5294.     DS:DX -> request block
  5295. Return: AX = status
  5296.         0000h successful
  5297.         0001h network software not installed or incompatible
  5298. Notes:    message handler should not call BIOS or DOS functions, and should
  5299.       either call next handler or simply return
  5300.     to stop intercepting messages, set prev and next request blocks to
  5301.       point at each other
  5302. SeeAlso: AX=0008h/BX=0002h
  5303.  
  5304. Format of request block:
  5305. Offset    Size    Description
  5306.  00h    DWORD    pointer to user-written message handler
  5307.  04h    DWORD    pointer to next request block (filled in by VINES)
  5308.  08h    DWORD    pointer to previous request block (filled in by VINES)
  5309.  0Ch    DWORD    pointer to message storage area (filled by VINES) (see below)
  5310.  
  5311. Format of message storage area:
  5312. Offset    Size    Description
  5313.  00h 16 BYTEs    IPC port of message sender (see AX=0001h#"Sosock")
  5314.  10h    BYTE    message flags
  5315.  11h    WORD    reserved
  5316.  13h    BYTE    length of message
  5317.  14h 80 BYTEs    message text
  5318. --------N-61000A-----------------------------
  5319. INT 61 - Banyan VINES - SECONDARY 3270 INTERFACE
  5320.     AX = 000Ah
  5321. Note:    either 3270/SNA or 3270/BSC interface will use AX=000Ah, depending on
  5322.       which is loaded second.  The first interface loaded will use AX=0002h
  5323. SeeAlso: INT 61/AX=0002h
  5324. --------N-6101-------------------------------
  5325. INT 61 - Banyan VINES - CHECK SERVICE
  5326.     AH = 01h
  5327.     AL = service ID
  5328.         01h communications
  5329.         02h primary 3270 emulation
  5330.         03h async terminal emulation
  5331.         04h file deflection
  5332.         07h StreetTalk
  5333.         08h environment
  5334.         0Ah secondary 3270 emulation
  5335.         0Bh semaphore service
  5336.         0Ch 3270 emulation active status
  5337.         0Dh 3270 keyboard interrupt simulator
  5338. Return: AX = status
  5339.         0000h installed
  5340.         0001h not installed
  5341.         0002h invalid ID
  5342. --------N-6101--BX0000-----------------------
  5343. INT 61 u - PC/TCP kernel v2.1+ - "net_config" - CONFIGURE RUNNING KERNEL
  5344.     AH = 01h
  5345.     BX = 0000h
  5346.     DH = tag number
  5347.     DL = device number
  5348.     DS:SI -> buffer to send to kernel
  5349.     ES:DI -> integer containing size of buffer
  5350. Return: CF clear if successful
  5351.     CF set on error
  5352.         AX = error code (see INT 61"PC/TCP")
  5353. Notes:    there are a large number of tags available; the items returned
  5354.       all refer to local kernel configuration, and are not needed in
  5355.       normal use.
  5356. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=02"PC/TCP"
  5357. --------N-6102-------------------------------
  5358. INT 61 - Banyan VINES - GET REVISION NUMBER
  5359.     AH = 02h
  5360.     DS:DX -> 2-byte buffer for result
  5361. Return: AX = 0000h installed
  5362.         DS:DX buffer contains revision number as
  5363.         10000d * major_ver + 100d * minor_ver + patch_revision
  5364. --------N-6102--BX0000-----------------------
  5365. INT 61 u - PC/TCP kernel v2.1+ - "get_kernel_info" - GET MISCELLAN LOCAL INFO
  5366.     AH = 02h
  5367.     BX = 0000h
  5368.     DH = tag number
  5369.     DL = device number
  5370.     DS:SI -> buffer for result (up to 48 bytes for version <= 2.2)
  5371.     ES:DI -> integer containing size of buffer
  5372. Return: CF clear if successful
  5373.         Data loaded into specified buffer, and size value altered
  5374.     CF set on error
  5375.         AX = error code (see INT 61"PC/TCP")
  5376. Notes:    there are a large number of tags available; the items returned
  5377.       all refer to local kernel configuration, and are not needed in
  5378.       normal use.
  5379. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=01h"PC/TCP"
  5380. --------N-6105-------------------------------
  5381. INT 61 - PC/TCP kernel v2.05+ - "get_addr" - GET INTERNET ADDRESS OF NET DESCR
  5382.     AH = 05h
  5383.     BX = network descriptor
  5384. Return: CF clear if successful
  5385.         DX:AX = Internet address of ND
  5386.     CF set on error
  5387.         AX = error code (see INT 61"PC/TCP")
  5388. Notes:    the installation check consists of testing for the signature "TCPTSR"
  5389.       three bytes beyond the start of the interrupt handler
  5390.     INT 61 is the default; PC/TCP v2.05 may be configured to use any
  5391.       interrupt from 20h through E0h
  5392. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=16h"PC/TCP"
  5393. --------N-6106-------------------------------
  5394. INT 61 - PC/TCP kernel v2.05 - "net_info" - GET INTERFACE STATISTICS
  5395.     AH = 06h
  5396.     BX = network descriptor (must be allocated and open)
  5397.     DS:SI -> 38-byte buffer (see below)
  5398. Return: CF clear if successful
  5399.         buffer filled
  5400.     CF set on error
  5401.         AX = error code (see INT 61"PC/TCP")
  5402. Desc:    returns the statistics relevant to the particular network interface
  5403.        used by the specified network descriptor
  5404. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=05h"PC/TCP"
  5405.  
  5406. Format of buffer:
  5407. Offset    Size    Description
  5408.  00h    WORD    interface class (e.g. 802.3)
  5409.  02h    WORD    type (manufacturer) of interface
  5410.  04h    WORD    interface number
  5411.  06h    DWORD    (big-endian) IP address of interface
  5412.  0Ah    DWORD    subnet mask
  5413.  0Eh    WORD    0001h if interface is up
  5414.  10h    DWORD    total packets received
  5415.  14h    DWORD    total packets sent
  5416.  18h    DWORD    receive errors
  5417.  1Ch    DWORD    send errors
  5418.  20h    WORD    length of local net address (e.g. 0006h for Ethernet)
  5419.  22h    DWORD    pointer to local net address
  5420. --------N-6107-------------------------------
  5421. INT 61 - PC/TCP kernel v2.05+ - "net_globalize" - MAKE NET DESCRIPTOR GLOBAL
  5422.     AH = 07h
  5423.     BX = local network descriptor
  5424. Return: CF clear if successful
  5425.         AX = global network descriptor
  5426.     CF set on error
  5427.         AX = error code (see INT 61"PC/TCP")
  5428. Notes:    the new network descriptor can be accessed from all processes and is
  5429.       independent of DOS
  5430. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=08h"PC/TCP"
  5431. SeeAlso: INT 61/AH=29h
  5432. --------N-6108-------------------------------
  5433. INT 61 - PC/TCP kernel v2.05+ - "net_release" - CLOSE A NETWORK DESCRIPTOR
  5434.     AH = 08h
  5435.     BX = network descriptor
  5436. Return: CF clear if successful
  5437.     CF set on error
  5438.         AX = error code (see INT 61"PC/TCP")
  5439. Note:    the descriptor will be closed and resources released.  If a stream
  5440.       descriptor, the protocol (FIN etc) is completed unless the
  5441.       non-blocking option has been set.
  5442. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=09h"PC/TCP"
  5443. --------N-6109-------------------------------
  5444. INT 61 - PC/TCP kernel v2.05+ - "net_releaseall" - CLOSE ALL NON-GLOBAL DESCRS
  5445.     AH = 09h
  5446. Return: CF clear
  5447. Notes:    this call performs function 08h on every non-global network descriptor.
  5448.       Global descriptors must be released individually.
  5449.     INT 61 is the default; PC/TCP v2.05 may be configured to use any
  5450.       interrupt from 20h through E0h
  5451. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=08h"PC/TCP"
  5452. --------N-610A-------------------------------
  5453. INT 61 - PC/TCP kernel v2.05 - "net_send" - ???
  5454.     AH = 0Ah
  5455.     ???
  5456. Return: ???
  5457. Note:    this function is described as "unused" in the v2.05 and v2.2
  5458.       documentation
  5459. SeeAlso: AH=0Bh
  5460. --------N-610B-------------------------------
  5461. INT 61 - PC/TCP kernel v2.05 - "net_sendto" - ???
  5462.     AH = 0Bh
  5463.     ???
  5464. Return: ???
  5465. Note:    this function is described as "unused" in the v2.05 and v2.2
  5466.       documentation
  5467. SeeAlso: AH=0Ah
  5468. --------N-610C-------------------------------
  5469. INT 61 u - PC/TCP kernel v2.05+ - "net_stat" - GET CONNECTION STATISTICS
  5470.     AH = 0Ch
  5471.     BX = network descriptor or one of the following:
  5472.         FFFCh for kernel ICMP statistics
  5473.         FFFDh for kernel UDP statistics
  5474.         FFFEh for kernel IP statistics
  5475.         FFFFh for kernel TCP statistics
  5476.     DS:DX -> 64-byte buffer
  5477. Return: CF clear if successful
  5478.         buffer filled
  5479.     CF set on error
  5480.         AX = error code (see INT 61"PC/TCP")
  5481. Note:    the fields filled in for a network descriptor depend on the protocol
  5482.       family used by that descriptor's connection
  5483. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5484.  
  5485. Format of kernel TCP statistics:
  5486. Offset    Size    Description
  5487.  00h 16 BYTEs    unused
  5488.  10h    DWORD    bytes sent
  5489.  14h    DWORD    bytes received
  5490.  18h  8 BYTEs    unused
  5491.  20h    DWORD    packets sent
  5492.  24h    DWORD    packets received
  5493.  28h    DWORD    bad checksums
  5494.  2Ch    DWORD    count of window ignored by remote
  5495.  30h    DWORD    timeouts
  5496.  34h    DWORD    resets
  5497.  38h    DWORD    duplicate packets
  5498.  3Ch    DWORD    retransmits
  5499.  
  5500. Format of kernel IP statistics:
  5501. Offset    Size    Description
  5502.  00h  8 BYTEs    unused
  5503.  08h    DWORD    invalid IP header length errors
  5504.  0Ch    DWORD    protocol errors (unwanted packets)
  5505.  10h    DWORD    duplicate fragments received
  5506.  14h    DWORD    bad fragments received
  5507.  18h    DWORD    security errors
  5508.  1Ch    DWORD    count of bad IP addresses received
  5509.  20h    DWORD    packets sent
  5510.  24h    DWORD    packets received
  5511.  28h    DWORD    bad checksums received
  5512.  2Ch    DWORD    total IP protocol errors
  5513.  30h    DWORD    fragmentation errors
  5514.  34h    DWORD    IP packets discarded + bad security + bad fragments
  5515.  38h    DWORD    fragments received
  5516.  3Ch  4 BYTEs    unused
  5517.  
  5518. Format of kernel UDP statistics:
  5519. Offset    Size    Description
  5520.  00h 28 BYTEs    unused
  5521.  1Ch    DWORD    packets dropped for lack of buffers
  5522.  20h    DWORD    packets sent
  5523.  24h    DWORD    packets received
  5524.  28h    DWORD    bad checksums
  5525.  2Ch    DWORD    port not listening errors
  5526.  30h  4 BYTEs    unused
  5527.  34h    DWORD    truncated receives
  5528.  38h  8 BYTEs    unused
  5529.  
  5530. Format of kernel ICMP statistics:
  5531. Offset    Size    Description
  5532.  00h    DWORD    "TimeEx" sent
  5533.  04h    DWORD    "TimeEx" received
  5534.  08h    DWORD    "ParamProb" sent
  5535.  0Ch    DWORD    "ParamProb" received
  5536.  10h    DWORD    redirects received
  5537.  14h    DWORD    source quenches received
  5538.  18h    DWORD    ICMP Echo Requests ("ping") sent
  5539.  1Ch    DWORD    ICMP Echo Requests received
  5540.  20h    DWORD    packets sent
  5541.  24h    DWORD    packets received
  5542.  28h    DWORD    bad packets received
  5543.  2Ch    DWORD    "DestUn" received
  5544.  30h    DWORD    packet send errors
  5545.  34h    DWORD    "DestUn" sent
  5546.  38h    DWORD    ICMP Echo replies received
  5547.  3Ch    DWORD    ICMP Echo replies sent
  5548. --------N-610D-------------------------------
  5549. INT 61 - PC/TCP kernel v2.05+ - "is_netnd" - CHECK IF NETWORK DESCRIPTOR VALID
  5550.     AH = 0Dh
  5551.     BX = possible network descriptor
  5552. Return: CF clear if valid
  5553.     CF set on error
  5554.         AX = error code (see INT 61"PC/TCP")
  5555. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=08h"PC/TCP"
  5556. SeeAlso: INT 61/AH=22h
  5557. --------N-610E-------------------------------
  5558. INT 61 - PC/TCP kernel v2.05+ - "net_select" - DETECT READINESS OF NETWORK
  5559.     AH = 0Eh
  5560.     BX = maximum value of network descriptor for which to return info
  5561.     DS:DX -> 32-bit (max) array of bit flags for read readiness
  5562.     ES:DI -> 32-bit (max) array of bit flags for write readiness
  5563. Return: CF clear
  5564. Notes:    bits in the DS:DX buffer are set if the corresponding network
  5565.       descriptor may be read without blocking; bits in the ES:DI buffer
  5566.       are set if the corresponding network descriptor may be written
  5567.       without blocking.  This implies that the network descriptor has
  5568.       opened correctly and the protocol initialized.
  5569.     the installation check consists of testing for the signature "TCPTSR"
  5570.       three bytes beyond the start of the interrupt handler
  5571.     INT 61 is the default; PC/TCP v2.05 may be configured to use any
  5572.       interrupt from 20h through E0h
  5573. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5574. --------N-610F-------------------------------
  5575. INT 61 - PC/TCP kernel v2.05+ - "get_netversion" - GET SOFTWARE VERSION
  5576.     AH = 0Fh
  5577. Return: CF clear
  5578.     AX = version (AH = major, AL = minor)
  5579.     BX = patch level
  5580. Note:    patch levels are no longer used starting with version 2.10; instead,
  5581.       the minor version level is incremented.
  5582. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5583. --------N-6110-------------------------------
  5584. INT 61 - PC/TCP kernel v2.05+ - "net_shutdown" - UNINSTALL
  5585.     AH = 10h
  5586. Return: CF clear if successful
  5587.     CF set on error
  5588.         AX = error code (see INT 61"PC/TCP")
  5589. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5590. --------N-6111-------------------------------
  5591. INT 61 - PC/TCP kernel v2.05+ - "disable_async" - DISABLE ASYNCHRONOUS HANDLERS
  5592.     AH = 11h
  5593. Return: CF clear
  5594.     AX = previous state
  5595.         0000h async calls were already disabled
  5596.         else  async calls were enabled
  5597. SeeAlso: INT 61"PC/TCP",INT 61/AH=12h
  5598. --------N-6112-------------------------------
  5599. INT 61 - PC/TCP kernel v2.05+ - "enable_async" - ENABLE ASYNCHRONOUS HANDLERS
  5600.     AH = 12h
  5601. Return: CF clear
  5602.     AX = previous state
  5603.         0000h async calls were disabled
  5604.         else  async calls were already enabled
  5605. SeeAlso: INT 61"PC/TCP",INT 61/AH=11h
  5606. --------N-6113-------------------------------
  5607. INT 61 - PC/TCP kernel v2.05 - "net_connect" - OPEN A NETWORK CONNECTION
  5608.     AH = 13h
  5609.     BX = network descriptor (FFFFh for automatic net_getdesc)
  5610.     DX = protocol (see below)
  5611.     DS:SI -> buffer for "addr" structure (see below)
  5612. Return: CF clear if successful
  5613.         AX = network descriptor used or allocated
  5614.     CF set on error
  5615.         AX = error code (see INT 61"PC/TCP")
  5616. Notes:    invokes AH=22h if BX=FFFFh on entry; also invokes AH=19h in various
  5617.       cases
  5618.     will wait for protocol on stream connections unless non-blocking was
  5619.       set with AH=20h
  5620. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=18h,INT 61/AH=23h
  5621.  
  5622. Values for protocol:
  5623.  0001h raw net (undocumented)
  5624.  0002h raw IP
  5625.  0003h datagram (UDP)
  5626.  0004h stream (TCP)
  5627.  0005h raw ICMP
  5628.  
  5629. Format of structure "addr":
  5630. Offset    Size    Description
  5631.  00h    DWORD    Internet address (network order)
  5632.  04h    WORD    remote socket number (network order)
  5633.  06h    WORD    local socket number (network order) 0000h means "you choose"
  5634.  08h    BYTE    protocol (see above)
  5635. --------N-6114-------------------------------
  5636. INT 61 u - PC/TCP kernel v2.05 - "net_recv" - NO LONGER SUPPORTED
  5637.     AH = 14h
  5638.     BX = network descriptor
  5639. Return: CF set
  5640.         AX = 0018h (see INT 61"PC/TCP")
  5641. Note:    displays error message "Illegal system call!  Please upgrade your
  5642.       PCserver software" to standard output
  5643. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=0Ah,INT 61/AH=15h
  5644. --------N-6115-------------------------------
  5645. INT 61 - PC/TCP kernel v2.05 - "net_recvfrom" - ???
  5646.     AH = 15h
  5647.     ???
  5648. Return: ???
  5649. Note:    this function is described as "unused" in the v2.2 documentation
  5650. SeeAlso: INT 61/AH=0Bh,INT 61/AH=14h
  5651. --------N-6116-------------------------------
  5652. INT 61 - PC/TCP kernel v2.05+ - "net_peer" - GET DATA ON REMOTE PEER
  5653.     AH = 16h
  5654.     BX = network descriptor
  5655.     DS:DX -> 9-byte buffer for "addr" structure (see AH=13h)
  5656. Return: CF clear if successful
  5657.         buffer filled
  5658.     CF set on error
  5659.         AX = error code (see INT 61"PC/TCP")
  5660. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5661. --------N-6117-------------------------------
  5662. INT 61 - PC/TCP kernel v2.05+ - "net_reconfig" - RE-READ KERNEL CONFIGURATION
  5663.     AH = 17h
  5664. Return: CF clear if successful
  5665.     CF set on error
  5666.         AX = error code (see INT 61"PC/TCP")
  5667. Note:    this routine is deprecated in v2.1+ and will eventually be withdrawn;
  5668.       in v2.1+, this function calls AH=01h which should be used instead
  5669. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=01h"PC/TCP"
  5670. --------N-6118-------------------------------
  5671. INT 61 - PC/TCP kernel v2.05+ - "net_eof" - CLOSE TRANSMIT SIDE OF CONNECTION
  5672.     AH = 18h
  5673.     BX = network descriptor
  5674. Return: CF clear if successful
  5675.     CF set on error
  5676.         AX = error code (see INT 61"PC/TCP")
  5677. Note:    a TCP "FIN" command is sent and no further data may be transmitted,
  5678.       although the connection remains open
  5679. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=13h"PC/TCP"
  5680. --------N-6119-------------------------------
  5681. INT 61 - PC/TCP kernel v2.05+ - "net_abort" - RESET A NETWORK CONNECTION
  5682.     AH = 19h
  5683.     BX = network descriptor
  5684. Return: CF clear if successful
  5685.     CF set on error
  5686.         AX = error code (see INT 61"PC/TCP")
  5687. Desc:    immediately destroys the specified connection
  5688. Note:    send a TCP "RST" command if a stream connection is open
  5689. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=24h
  5690. --------N-611A-------------------------------
  5691. INT 61 - PC/TCP kernel v2.05+ - "net_write" - WRITE TO THE NETWORK
  5692.     AH = 1Ah
  5693.     BX = network descriptor
  5694.     CX = number of bytes to transmit (0000h allowed)
  5695.     DX = send options (see below)
  5696.     DS:SI -> data to be written
  5697. Return: CF clear if successful
  5698.         AX = number of bytes actually written
  5699.         DX = ???
  5700.     CF set on error
  5701.         AX = error code (see INT 61"PC/TCP")
  5702. Notes:    the installation check consists of testing for the signature "TCPTSR"
  5703.       three bytes beyond the start of the interrupt handler
  5704.     INT 61 is the default; PC/TCP v2.05 may be configured to use any
  5705.       interrupt from 20h through E0h
  5706. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=1Bh,INT 61/AH=1Ch
  5707.  
  5708. Bitfields for send options:
  5709.  bit 0    signal "URG"ent data
  5710.  bit 3    attempt rerouting on non-stream calls if first attempt fails
  5711.  bit 4    send data with PUSH flag (no override of Nagle)
  5712.      (see option 0Ch)
  5713.  bit 5    fail rather than truncating datagram
  5714.  bit 6    fail rather than blocking
  5715.  bit 7    broadcast packet
  5716. --------N-611B-------------------------------
  5717. INT 61 - PC/TCP kernel v2.05+ - "net_read" - READ FROM THE NETWORK
  5718.     AH = 1Bh
  5719.     BX = network descriptor
  5720.     CX = maximum number of bytes to read
  5721.     DX = receive options (see below)
  5722.     DS:SI -> buffer for data
  5723.     ES:DI -> "addr" structure (see AH=13h) for remote from which to read
  5724.         0000h:0000h for any
  5725. Return: CF clear if successful
  5726.         AX = number of bytes actually read
  5727.         DX = ???
  5728.     CF set on error
  5729.         AX = error code (see INT 61"PC/TCP")
  5730. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=1Ah,INT 61/AH=1Dh
  5731.  
  5732. Bitfields for receive options:
  5733.  bit 1    do not remove data from queue, just copy it
  5734.  bit 2    do not copy data, just remove it from queue
  5735.  bit 5    fail if datagram would be truncated
  5736.  bit 6    do not block, return error if no data available
  5737. Note:    special case for UDP: if both bits 1 and 2 set, return num of datagrams
  5738. --------N-611C-------------------------------
  5739. INT 61 - PC/TCP kernel v2.05+ - "net_writeto" - WRITE A DATAGRAM
  5740.     AH = 1Ch
  5741.     BX = network descriptor
  5742.     CX = number of bytes to transmit (0000h allowed)
  5743.     DX = send options (see AH=1Ah)
  5744.     DS:SI -> data to be written
  5745.     ES:DI -> "addr" structure (see AH=13h)
  5746. Return: CF clear if successful
  5747.         AX = number of bytes actually written
  5748.         DX = ???
  5749.     CF set on error
  5750.         AX = error code (see INT 61"PC/TCP")
  5751. Note:    this function differs from AH=1Ah in that the address and socket
  5752.       numbers can be overridden
  5753. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=1Ah,INT 61/AH=1Dh
  5754. --------N-611D-------------------------------
  5755. INT 61 - PC/TCP kernel v2.05+ - "net_readfrom" - READ A DATAGRAM
  5756.     AH = 1Dh
  5757.     BX = network descriptor
  5758.     CX = maximum number of bytes to read
  5759.     DX = receive options (see AH=1Bh)
  5760.     DS:SI -> buffer for received data
  5761.     ES:DI -> 9-byte buffer containing "addr" structure (see AH=13h)
  5762. Return: CF clear if successful
  5763.         AX = number of bytes read
  5764.         DX = ???
  5765.     CF set on error
  5766.         AX = error code (see INT 61"PC/TCP")
  5767. Notes:    this function can read from any host or a designated host depending
  5768.       on settings in the "addr" structure
  5769.     only for use with datagram or Raw descriptors
  5770. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=1Bh,INT 61/AH=1Ch
  5771. --------N-611E-------------------------------
  5772. INT 61 - PC/TCP kernel v2.05+ - "net_flush" - FLUSH PENDING DATA
  5773.     AH = 1Eh
  5774.     BX = network descriptor
  5775. Return: CF clear if successful
  5776.     CF set on error
  5777.         AX = error code (see INT 61"PC/TCP")
  5778. Note:    bufferred data is transmitted immediately, overriding Nagle's algorithm
  5779.       if necessary
  5780. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5781. --------N-611F-------------------------------
  5782. INT 61 - PC/TCP kernel v2.05+ - "net_asynch" - SET UP ASYNCHRONOUS CALL-BACK
  5783.     AH = 1Fh
  5784.     BX = network descriptor
  5785.     CX = event type (see below)
  5786.     DS:SI -> event handler routine
  5787.     ES:DI = 32-bit hint passed to handler
  5788. Return: CF clear if successful
  5789.         DS:DX -> previous handler
  5790.     CF set on error
  5791.         AX = error code (see INT 61"PC/TCP")
  5792. Note:    ICMP messages do not trigger events on stream connections
  5793. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5794.  
  5795. Values for event type:
  5796.  00h alarm
  5797.  01h open (successfully opened stream connection)
  5798.  02h receive (data available)
  5799.  03h transmit (ACK received on stream connection)
  5800.  04h transmit flush???
  5801.  05h foreign close (remote host closed data connection)
  5802.  06h close (local host closed connection and protocol is complete)
  5803.  07h error (error code passed to handler as arg)
  5804.  
  5805. Event handler called with:
  5806.     BX = network descriptor
  5807.     CX = event type (see above)
  5808.     DS:DX -> arg
  5809.     ES:DI = 32-bit hint value
  5810.     STACK:    small stack, possibly the DOS stack
  5811. --------N-6120-------------------------------
  5812. INT 61 - PC/TCP kernel v2.05+ - "set_option" - SET AN OPTION ON A DESCRIPTOR
  5813.     AH = 20h
  5814.     BX = network descriptor
  5815.     CX = length of buffer (usually 04h)
  5816.     DS:DX -> buffer containing option
  5817.     SI = (ignored by v2.2-)
  5818.     DI = option to set (see below)
  5819. Return: CF clear if successful
  5820.     CF set on error
  5821.         AX = error code (see INT 61"PC/TCP")
  5822. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=21h
  5823.  
  5824. Values for option to set:
  5825.  01h    set non-blocking mode if non-zero
  5826.  02h    timeout of call in milliseconds
  5827.  03h    user-defined 4-byte magic cookie (not used by kernel)
  5828.  04h    TCP window or UDP buffer count (WORD, unsigned)
  5829.  06h    do TCP keep-alives if non-zero
  5830.  09h    (v2.1+) set IP precedence
  5831.  0Ah    (v2.1+) set IP type of service
  5832.  0Bh    use a privileged port if port = 0
  5833.  0Ch    turn off TCP PUSH bit and don't flush buffer every write (see AH=1Ah)
  5834. Note:    use "C" true or false values for boolean options
  5835. --------N-6121-------------------------------
  5836. INT 61 - PC/TCP kernel v2.05+ - "get_option" - GET OPTIONS APPLIED TO NET DESCR
  5837.     AH = 21h
  5838.     BX = network descriptor
  5839.     CX = length of buffer
  5840.     DS:DX -> buffer for return values
  5841.     SI = 0004h (ignored by v2.2-)
  5842.     DI = option (see AH=20h)
  5843. Return: CF clear if successful
  5844.         DS:DX -> value (usually 32 bits) returned by selected option
  5845.     CF set on error
  5846.         AX = error code (see INT 61"PC/TCP")
  5847. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=20h
  5848. --------N-6122-------------------------------
  5849. INT 61 u - PC/TCP kernel v2.05+ - "net_getdesc" - ALLOCATE NETWORK DESCRIPTOR
  5850.     AH = 22h
  5851. Return: CF clear if successful
  5852.         AX = network descriptor
  5853.     CF set on error
  5854.         AX = error code (see INT 61"PC/TCP")
  5855. Note:    the descriptor will be an integer in the range 00h-1Fh, and a DOS call
  5856.       is made to allocate this as a file descriptor.  Hence a number may
  5857.       not refer to a PC/TCP network descriptor and a DOS file handle
  5858.       simultaneously.
  5859. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=13h,INT 61/AH=29h
  5860. --------N-6123-------------------------------
  5861. INT 61 - PC/TCP kernel v2.05+ - "net_listen" - LISTEN FOR INCOMING CONNECTIONS
  5862.     AH = 23h
  5863.     BX = network descriptor or FFFFh to allocate descriptor
  5864.     DX = type of service
  5865.     DS:SI -> "addr" structure (see AH=13h)
  5866. Return: CF clear if successful
  5867.         AX = network descriptor
  5868.     CF set on error
  5869.         AX = error code (see INT 61"PC/TCP")
  5870. Notes:    type of service and "addr" structure are as for AH=13h
  5871.     any of the address structure can be zero; normally local socket number
  5872.       is filled in prior to call
  5873. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=13h
  5874. --------N-6124-------------------------------
  5875. INT 61 - PC/TCP kernel v2.05+ - "net_abortall" - RESET ALL NETWORK CONNECTIONS
  5876.     AH = 24h
  5877. Return: always successful
  5878. Note:    performs "net_abort" (AH=19h) on all open non-global descriptors
  5879. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=19h
  5880. --------N-6125-------------------------------
  5881. INT 61 - PC/TCP kernel v2.05+ - "ad_res_name" - GET HOST NAME GIVEN ADDRESS
  5882.     AH = 25h
  5883.     DX,BX = IP address in network order
  5884.     CX = length of buffer for name
  5885.     DS:SI -> buffer for host name
  5886. Return: CF clear if successful
  5887.        buffer filled with ASCIZ host name
  5888.     CF set on error
  5889.         AX = error code (see INT 61"PC/TCP")
  5890. Note:    this function will use the host table and or DNS to resolve the
  5891.       address, depending on kernel configuration.  Use this call for the
  5892.       normal gethostbyaddr function.
  5893. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=26h,INT 61/AH=27h
  5894. --------N-6126-------------------------------
  5895. INT 61 - PC/TCP kernel v2.05+ - "ad_htable" - GET HOST NAME FROM LOCAL TABLE
  5896.     AH = 26h
  5897.     DX,BX = IP address in network order
  5898.     CX = length of buffer
  5899.     DS:SI -> buffer for host name
  5900. Return: CF clear if successful
  5901.         buffer filled with ASCIZ host name
  5902.     CF set on error
  5903.         AX = error code (see INT 61"PC/TCP")
  5904. Note:    normally one would use AH=25h instead of this function
  5905. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=25h,INT 61/AH=27h
  5906. --------N-6127-------------------------------
  5907. INT 61 - PC/TCP kernel v2.05+ - "ad_domain" - GET HOST NAME FROM DNS
  5908.     AH = 27h
  5909.     DX,BX = IP address in network order
  5910.     CX = length of buffer
  5911.     DS:SI -> buffer for host name
  5912. Return: CF clear if successful
  5913.         buffer filled with ASCIZ host name
  5914.     CF set on error
  5915.         AX = error code (see INT 61"PC/TCP")
  5916. Note:    normally one would use AH=25h instead of this function
  5917. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=25h,INT 61/AH=26h
  5918. --------N-6128-------------------------------
  5919. INT 61 - PC/TCP kernel v2.05+ - "net_swap" - EXCHANGE TWO NETWORK DESCRIPTORS
  5920.     AH = 28h
  5921.     BX = network descriptor 1
  5922.     CX = network descriptor 2
  5923. Return: CF clear if successful
  5924.     CF set on error
  5925.         AX = error code (see INT 61"PC/TCP")
  5926. Note:    the two descriptors will exchange places; both must be local or both
  5927.       global
  5928. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5929. --------N-6129-------------------------------
  5930. INT 61 - PC/TCP kernel v2.05+ - "net_getglobdesc" - ALLOCATE GLOBAL DESCRIPTOR
  5931.     AH = 29h
  5932. Return: CF clear if successful
  5933.         AX = network descriptor
  5934.     CF set on error
  5935.         AX = error code (see INT 61"PC/TCP")
  5936. Note:    use this function rather than AH=22h to avoid a DOS call by the PC/TCP
  5937.       kernel; the returned descriptor will be >= 40h and cannot be used
  5938.       with "net_select" (AH=0Eh)
  5939. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=07h"PC/TCP"
  5940. SeeAlso: INT 61/AH=22h
  5941. --------N-612A-------------------------------
  5942. INT 61 - PC/TCP kernel v2.05+ - GET CONFIGURATION INFORMATION
  5943.     AH = 2Ah
  5944.     DS:SI -> 26-byte buffer for configuration information (see below)
  5945. Return: CF clear
  5946.     AX = 0000h
  5947.     buffer filled
  5948. Note:    size of buffer may vary with kernel version; 26 bytes is the size for
  5949.       versions 2.05 through 2.2
  5950. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5951.  
  5952. Format of configuration information:
  5953. Offset    Size    Description
  5954.  00h    BYTE    maximum TCP connections available
  5955.  01h    BYTE    maximum UDP connections available
  5956.  02h    BYTE    maximum IP connections available
  5957.  03h    BYTE    maximum Raw Net connections available
  5958.  04h    BYTE    number of TCP connections currently in use
  5959.  05h    BYTE    number of UDP connections currently in use
  5960.  06h    BYTE    number of IP connections currently in use
  5961.  07h    BYTE    number of Raw Net connections currently in use
  5962.  08h    WORD    number of local network descriptors active
  5963.  0Ah    WORD    number of global network descriptors active
  5964.  0Ch    BYTE    maximum header size on network
  5965.  0Dh    BYTE    maximum trailer size on network
  5966.  0Eh    WORD    size of large packet buffer
  5967.  10h    WORD    number of network interfaces attached
  5968.  12h    DWORD    milliseconds since kernel started
  5969.  16h    DWORD    IP broadcast address
  5970. --------N-612B-------------------------------
  5971. INT 61 - PC/TCP kernel v2.02+ - "net_alarm" - SET TIMED ASYNCHRONOUS EVENT
  5972.     AH = 2Bh
  5973.     BX = network descriptor
  5974.     CX,DX = time before alarm in milliseconds
  5975.     DS:SI -> handler which will receive call (see INT 61/AH=1Fh)
  5976.     ES:DI = 32-bit cookie passed to handler
  5977. Return: CF clear if successful
  5978.     CF set on error
  5979.         AX = error code (see INT 61"PC/TCP")
  5980. Note:    this function will case a NET_AS_ALARM to be generated; it is intended
  5981.       for TSRs, etc. to regain control periodically
  5982. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5983. --------N-6130-------------------------------
  5984. INT 61 - PC/TCP kernel v2.05+ - "icmp_ping" - SEND ICMP ECHO REQUEST (PING)
  5985.     AH = 30h
  5986.     BX,DX = IP address of host
  5987.     CX = length of data to send
  5988. Return: CF clear if successful (i.e. reply received)
  5989.     CF set on error
  5990.         AX = error code (see INT 61"PC/TCP")
  5991. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP"
  5992. --------N-61---------------------------------
  5993. INT 61 u - PC/TCP kernel v2.05 - NOP for SLIP kernel
  5994.     AH = function
  5995.         31h "net_add_route"
  5996.         32h "net_del_route"
  5997.         33h "net_dump_routes"
  5998. Notes:    these functions are described as "unused" in the v2.2 documentation
  5999.     router configuration can be altered using INT 61/AH=01h
  6000. --------N-6134-------------------------------
  6001. INT 61 U - PC/TCP kernel v2.1+ - "icmp_destun" - ???
  6002.     AH = 34h
  6003.     ???
  6004. Return: ???
  6005. Note:    this function is described as "reserved" in the v2.2 documentation
  6006. --------N-6150-------------------------------
  6007. INT 61 - PC/TCP kernel v2.05+ - "nm_prs_addr" - TRANSLATE NUMERICAL IP ADDRESS
  6008.     AH = 50h
  6009.     DS:DX -> ASCIZ IP address as "dotted quad" (max 127 chars)
  6010. Return: CF clear if successful
  6011.         DX:AX -> IP address
  6012.     CF set on error
  6013.         AX = error code (see INT 61"PC/TCP")
  6014. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=54h
  6015. --------N-6151-------------------------------
  6016. INT 61 - PC/TCP kernel v2.05+ - "nm_htable" - RESOLVE NAME USING HOST TABLE
  6017.     AH = 51h
  6018.     CX = size of destination buffer
  6019.     DS:DX -> ASCIZ host name (max 127 chars)
  6020.     ES:DI -> destination buffer or 0000h:0000h
  6021. Return: CF clear if successful
  6022.         DX:AX -> IP address of host
  6023.         destination buffer filled with canonical host name
  6024.     CF set on error
  6025.         AX = error code (see INT 61"PC/TCP")
  6026. Note:    this function calls DOS, and can fail if the DOS call fails
  6027. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=54h
  6028. --------N-6152-------------------------------
  6029. INT 61 - PC/TCP kernel v2.05+ - "nm_domain" - RESOLVE NAME USING DNS
  6030.     AH = 52h
  6031.     CX = size of destination buffer
  6032.     DS:DX -> ASCIZ host name (max 127 chars)
  6033.     ES:DI -> destination buffer or 0000h:0000h
  6034. Return: CF clear if successful
  6035.         DX:AX -> IP address of host
  6036.         destination buffer filled with canonical host name
  6037.     CF set on error
  6038.         AX = error code (see INT 61"PC/TCP")
  6039. Note:    this function will poll all configured domain name servers if necessary
  6040. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=54h
  6041. --------N-6153-------------------------------
  6042. INT 61 - PC/TCP kernel v2.05- - "nm_ien116" - RESOLVE HOST NAME USING IEN116
  6043.     AH = 53h
  6044.     DS:DX -> ASCIZ name to be resolved (max 127 chars)
  6045. Return: CF clear if successful
  6046.         DX:AX -> IP address of host
  6047.     CF set on error
  6048.         AX = error code (see INT 61"PC/TCP")
  6049. Note:    this function is not supported by v2.10+
  6050. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=54h
  6051. --------N-6154-------------------------------
  6052. INT 61 - PC/TCP kernel v2.05+ - "nm_res_name" - RESOLVE HOST NAME
  6053.     AH = 54h
  6054.     CX = size of destination buffer
  6055.     DS:DX -> ASCIZ host name (max 127 chars)
  6056.     ES:DI -> destination buffer or 0000h:0000h
  6057. Return: CF clear if successful
  6058.         DX:AX -> IP address of host
  6059.         destination buffer filled with canonical host name
  6060.     CF set on error
  6061.         AX = error code (see INT 61"PC/TCP")
  6062. Note:    this function uses all configured methods in turn to resolve the
  6063.       name (numerical, then host table, then DNS, then IEN116)
  6064. BUG:    the SLIP kernel for v2.05 bounds-checks the wrong register, so values
  6065.       greater than 54h in AH may crash the system.    Other kernels may have
  6066.       this bug as well; it has been fixed in the v2.2 SLIPDRV kernel.
  6067. SeeAlso: INT 61"PC/TCP",INT 61/AH=00h"PC/TCP",INT 61/AH=50h,INT 61/AH=51h
  6068. SeeAlso: INT 61/AH=52h,INT 61/AH=53h
  6069. --------*-62---------------------------------
  6070. INT 62 - reserved for user interrupt
  6071. --------d-62---------------------------------
  6072. INT 62 - Adaptec and OMTI controllers - DRIVE 0 DATA
  6073. Notes:    this vector stores the third four bytes of the parameter table for
  6074.       hard disk 0
  6075. SeeAlso: INT 60"Adaptec",INT 61"Adaptec",INT 63"Adaptec"
  6076. --------b-62---------------------------------
  6077. INT 62 - HP 95LX - USED BY CALCULATOR
  6078. SeeAlso: INT 60"HP 95LX"
  6079. ----------62---------------------------------
  6080. INT 62 - MS SQL Server/Sybase DBLIBRARY interface - ???
  6081.     AH = function (00h to 07h)
  6082.     CX = FFFEh
  6083.     DX = FFFFh
  6084.     ???
  6085. Return: ???
  6086. Note:    the installation check consists of testing for the string "DBLIBRARY"
  6087.       2 bytes past the interrupt handler
  6088. SeeAlso: AH=08h"SQL"
  6089. Index:    installation check;MS SQL Server|installation check;Sybase DBLIBRARY
  6090. --------V-620000-----------------------------
  6091. INT 62 u - FGDRIVER v1.10 - "FG_GETMODE" - GET CURRENT VIDEO MODE NUMBER
  6092.     AX = 0000h
  6093.     ES:BX -> ???
  6094. Return: AX = current video mode number
  6095. Notes:    FGDRIVER is the external video driver for the shareware
  6096.       Fastgraph/Light by Ted Gruber Software
  6097.     the installation check consists of testing for the signature "FG" ten
  6098.       bytes beyond the start of the interrupt handler
  6099. SeeAlso: AX=0001h,AX=0006h
  6100. Index:    installation check;Fastgraph/Light
  6101. --------V-620001-----------------------------
  6102. INT 62 u - FGDRIVER v1.10 - "FG_SETMODE" - SELECT VIDEO MODE AND INITIALIZE
  6103.     AX = 0001h
  6104.     BX = new video mode or FFFFh for current mode
  6105.     ES:DX -> ???
  6106. Notes:    video modes are the same as the BIOS video modes except for
  6107.         0Bh Hercules graphics 720x348
  6108.         0Ch Hercules graphics 320x200
  6109.         15h VGA graphics 320x400x256
  6110.         16h VGA graphics 320x240x256
  6111.         17h VGA graphics 320x480x256
  6112.     this call resets the active video page to page 0000h, the clipping
  6113.       region to the entire screen, text rows to 25, etc.
  6114. SeeAlso: AX=0000h,AX=0002h,INT 10/AH=00h
  6115. --------V-620002-----------------------------
  6116. INT 62 u - FGDRIVER v1.10 - "FG_TESTMODE" - CHECK IF VIDEO MODE AVAILABLE
  6117.     AX = 0002h
  6118.     BX = desired video mode (00h-17h)
  6119.     CX = required number of video pages (ignore memory size if <= 0)
  6120. Return: AX = status
  6121.         0000h mode not available with requested number of pages
  6122.         0001h mode is available
  6123. SeeAlso: AX=0001h,AX=0003h,AX=0004h,AX=0005h
  6124. --------V-620003-----------------------------
  6125. INT 62 u - FGDRIVER v1.10 - "FG_BESTMODE" - GET BEST VIDEO MODE GIVEN RESOLUTN
  6126.     AX = 0003h
  6127.     BX = horizontal resolution
  6128.     CX = vertical resolution
  6129.     DX = number of video pages required (both physical and virtual)
  6130. Return: AX = proposed video mode number or FFFFh if no matching video mode
  6131. SeeAlso: AX=0002h,AX=0004h
  6132. --------V-620004-----------------------------
  6133. INT 62 u - FGDRIVER v1.10 - "FG_AUTOMODE" - GET VIDEO MODE WITH MOST FEATURES
  6134.     AX = 0004h
  6135. Return: AX = proposed video mode number
  6136. Note:    FGDRIVER is the external video driver for the shareware
  6137.       Fastgraph/Light by Ted Gruber Software
  6138. SeeAlso: AX=0002h,AX=0003h,AX=0005h
  6139. --------V-620005-----------------------------
  6140. INT 62 u - FGDRIVER v1.10 - "FG_EGACHECK" - GET INFO ABOUT ACTIVE EGA DISPLAY
  6141.     AX = 0005h
  6142. Return: AX = number of 64K banks of video memory, or 0000h if no EGA or EGA
  6143.         without an Enhanced Color Display
  6144. SeeAlso: AX=0002h,AX=0003h
  6145. --------V-620006-----------------------------
  6146. INT 62 u - FGDRIVER v1.10 - "FG_RESET" - ERASE SCREEN AND RESTORE SCREEN ATTR
  6147.     AX = 0006h
  6148. Notes:    this call is ignored in graphics modes
  6149.     the screen attributes are only restored if ANSI.SYS is loaded
  6150. SeeAlso: AX=0000h
  6151. --------V-620007-----------------------------
  6152. INT 62 u - FGDRIVER v1.10 - "FG_CURSOR" - SPECIFY WHETHER TEXT CURSR IS VISIBLE
  6153.     AX = 0007h
  6154.     BX = new state (0000h invisible, 0001h visible)
  6155. Note:    this call is ignored in text modes
  6156. --------V-620008-----------------------------
  6157. INT 62 - FGDRIVER v1.10 - UNUSED
  6158.     AX = 0008h to 0009h
  6159. Return: AX = 0000h
  6160. --------V-62000A-----------------------------
  6161. INT 62 u - FGDRIVER v1.10 - "FG_GETMAXX" - GET MAXIMUM COLUMN IN SCREEN SPACE
  6162.     AX = 000Ah
  6163. Return: AX = maximum X coordinate in screen space
  6164.         (or character space if in text mode)
  6165. SeeAlso: AX=000Bh,AX=0045h
  6166. --------V-62000B-----------------------------
  6167. INT 62 u - FGDRIVER v1.10 - "FG_GETMAXY" - GET MAXIMUM ROW IN SCREEN SPACE
  6168.     AX = 000Bh
  6169. Return: AX = maximum Y coordinate in screen space
  6170.         (or character space if in text mode)
  6171. SeeAlso: AX=000Ah,AX=0045h
  6172. --------V-62000C-----------------------------
  6173. INT 62 u - FGDRIVER v1.10 - "FG_XALPHA" - CONVERT SCREEN COLUMN TO CHAR COLUMN
  6174.     AX = 000Ch
  6175.     BX = screen space column
  6176. Return: AX = character space column containing specified coordinate
  6177. SeeAlso: AX=000Dh,AX=000Eh
  6178. --------V-62000D-----------------------------
  6179. INT 62 u - FGDRIVER v1.10 - "FG_YALPHA" - CONVERT SCREEN ROW TO CHARACTER ROW
  6180.     AX = 000Dh
  6181.     BX = screen space row
  6182. Return: AX = character space row containing specified coordinate
  6183. SeeAlso: AX=000Ch,AX=000Fh
  6184. --------V-62000E-----------------------------
  6185. INT 62 u - FGDRIVER v1.10 - "FG_XCONVERT" - CONVERT CHAR COLUMN TO SCREEN COL
  6186.     AX = 000Eh
  6187.     BX = character space column
  6188. Return: AX = screen space column of leftmost pixel in specified character col
  6189. SeeAlso: AX=000Ch,AX=000Fh
  6190. --------V-62000F-----------------------------
  6191. INT 62 u - FGDRIVER v1.10 - "FG_YCONVERT" - CONVERT CHARACTER ROW TO SCREEN ROW
  6192.     AX = 000Fh
  6193.     BX = character space row
  6194. Return: AX = screen space row of topmost pixel in specified character row
  6195. SeeAlso: AX=000Dh,AX=000Eh
  6196. --------V-620010-----------------------------
  6197. INT 62 u - FGDRIVER v1.10 - "FG_GETLINES" - GET TEXT ROWS FOR CURR VIDEO MODE
  6198.     AX = 0010h
  6199. Return: AX = number of text rows on screen in current video mode
  6200. SeeAlso: AX=0011h
  6201. --------V-620011-----------------------------
  6202. INT 62 u - FGDRIVER v1.10 - "FG_SETLINES" - SET TEXT ROWS ON SCREEN
  6203.     AX = 0011h
  6204.     BX = new screen size (25, 43, 50)
  6205. SeeAlso: AX=0010h
  6206. --------V-620012-----------------------------
  6207. INT 62 - FGDRIVER v1.10 - UNUSED
  6208.     AX = 0012h to 0013h
  6209. Return: AX = 0000h
  6210. --------V-620014-----------------------------
  6211. INT 62 u - FGDRIVER v1.10 - "FG_DEFCOLOR" - ASSIGN COLOR VALUE TO COLOR INDEX
  6212.     AX = 0014h
  6213.     BX = color index (0000h-00FFh)
  6214.     CX = new color value (0 to maximum color value for current video mode)
  6215. Note:    this call is ignored in text modes and 256-color graphics modes
  6216. SeeAlso: AX=0015h,AX=0016h,AX=001Dh
  6217. --------V-620015-----------------------------
  6218. INT 62 u - FGDRIVER v1.10 - "FG_GETCOLOR" - GET CURRENT TEXT ATTRIBUTE
  6219.     AX = 0015h
  6220. Return: AX = current text attribute or color index (graphics modes)
  6221. Note:    FGDRIVER is the external video driver for the shareware
  6222.       Fastgraph/Light by Ted Gruber Software
  6223. SeeAlso: AX=0019h,AX=001Ah
  6224. --------V-620016-----------------------------
  6225. INT 62 u - FGDRIVER v1.10 - "FG_GETINDEX" - GET COLOR VALUE FOR COLOR INDEX
  6226.     AX = 0016h
  6227.     BX = color index (0000h to 00FFh)
  6228. Return: AX = color value for specified color index
  6229. Note:    this call returns the value passed to it in text and 256-color
  6230.       graphics modes
  6231. SeeAlso: AX=0014h,AX=001Ch
  6232. --------V-620017-----------------------------
  6233. INT 62 u - FGDRIVER v1.10 - "FG_PALETTE" - SET PALETTE / SET VIDEO DAC REGISTER
  6234.     AX = 0017h
  6235. ---CGA 4-color graphics---
  6236.     BX = CGA paletee number
  6237.     CX = background color
  6238. ---CGA 2-color graphics---
  6239.     BX ignored
  6240.     CX = foreground color
  6241. ---16-color graphics---
  6242.     BX = palette register number
  6243.     CX = palette value
  6244. ---256-color graphics---
  6245.     BX = DAC register number
  6246.     CX =  DAC value
  6247. Notes:    ignored in text modes and Hercules graphics modes
  6248.     few EGA/VGA adapters correctly set the foreground color in CGA mode 6
  6249. SeeAlso: AX=0018h,AX=001Dh
  6250. --------V-620018-----------------------------
  6251. INT 62 u - FGDRIVER v1.10 - "FG_PALETTES" - SET ALL PALETTE REGISTERS
  6252.     AX = 0018h
  6253.     ES:BX -> array of 16 WORDs containing values for palette registers
  6254.         (or first 16 DAC registers in 256-color modes)
  6255. Note:    ignored in text modes, CGA and Hercules graphics modes
  6256. SeeAlso: AX=0017h
  6257. --------V-620019-----------------------------
  6258. INT 62 u - FGDRIVER v1.10 - "FG_SETATTR" - SET TEXT-MODE CHARACTER ATTRIBUTE
  6259.     AX = 0019h
  6260.     BX = foreground
  6261.     CX = background
  6262.     DX = blink (0000h nonblinking, 0001h blink)
  6263. Note:    this call is ignored in graphics modes
  6264. SeeAlso: AX=0015h,AX=001Ah,AX=0037h
  6265. --------V-62001A-----------------------------
  6266. INT 62 u - FGDRIVER v1.10 - "FG_SETCOLOR" - SET CURRENT COLOR
  6267.     AX = 001Ah
  6268.     BX = new color index (or text attribute in text modes)
  6269. SeeAlso: AX=0015h,AX=0019h
  6270. --------V-62001B-----------------------------
  6271. INT 62 u - FGDRIVER v1.10 - "FG_SETRGB" - SET VIDEO DAC REGISTER CONTENTS
  6272.     AX = 001Bh
  6273.     BX = palette or DAC register number
  6274.     CX = red color component
  6275.     DX = green component
  6276.     SI = blue component
  6277. Notes:    the register number may be negative for Tandy, PCjr, and 200-line
  6278.       EGA graphics modes to specify an intense color
  6279.     this call has no effect in text, CGA graphics, and Hercules graphics
  6280.       modes
  6281. SeeAlso: AX=001Ch,AX=00A5h
  6282. --------V-62001C-----------------------------
  6283. INT 62 u - FGDRIVER v1.10 - "FG_GETRGB" - GET VIDEO DAC REGISTER CONTENTS
  6284.     AX = 001Ch
  6285.     ES:BX -> variable pointer record (see below)
  6286.     CX = DAC register number
  6287. Return: variables updated
  6288. Note:    this call is ignored in text modes and CGA/EGA video modes (since
  6289.       they do not use DAC registers)
  6290. SeeAlso: AX=001Bh,AX=001Dh,AX=00A4h
  6291.  
  6292. Format of variable pointer record:
  6293. Offset    Size    Description
  6294.  00h    WORD    segment of WORD buffer for red component of DAC register
  6295.  02h    WORD    offset of WORD buffer for red component
  6296.  04h    WORD    segment of WORD buffer for green component of DAC register
  6297.  06h    WORD    offset of WORD buffer for green component
  6298.  08h    WORD    segment of WORD buffer for blue component of DAC register
  6299.  0Ah    WORD    offset of WORD buffer for blue component
  6300. --------V-62001D-----------------------------
  6301. INT 62 u - FGDRIVER v1.10 - "FG_MAPRGB" - MAP COLOR COMPONENTS INTO PALETTE VAL
  6302.     AX = 001Dh
  6303.     BX = red component
  6304.     CX = green component
  6305.     DX = blue component
  6306. Return: AX = mode-specific palette value corresponding to specified components
  6307. Note:    only meaningful in 16-color graphics modes
  6308. SeeAlso: AX=0015h,AX=0017h
  6309. --------V-62001E-----------------------------
  6310. INT 62 u - FGDRIVER v1.10 - "FG_ERASE" - CLEAR THE ACTIVE VIDEO PAGE
  6311.     AX = 001Eh
  6312. Note:    sets each pixel to 0 in graphics modes, each character cell to a blank
  6313.       with a gray foreground attribute in text modes
  6314. --------V-62001F-----------------------------
  6315. INT 62 u - FGDRIVER v1.10 - "FG_POINT" - DISPLAY A PIXEL
  6316.     AX = 001Fh
  6317.     BX = column
  6318.     CX = row
  6319. Note:    this call is ignored in text modes
  6320. SeeAlso: AX=0020h
  6321. --------V-620020-----------------------------
  6322. INT 62 u - FGDRIVER v1.10 - "FG_GETPIXEL" - GET COLOR OF SPECIFIED PIXEL
  6323.     AX = 0020h
  6324.     BX = column in screen space
  6325.     CX = row in screen space
  6326. Return: AX = color value of pixel (0 to num_colors-1)
  6327.         0000h in text modes
  6328. SeeAlso: AX=001Fh
  6329. --------V-620021-----------------------------
  6330. INT 62 u - FGDRIVER v1.10 - "FG_GETXPOS" - GET GRAPHICS CURSOR COLUMN
  6331.     AX = 0021h
  6332. Return: AX = screen space X coordinate of graphics cursor position
  6333. SeeAlso: AX=0022h,AX=0023h,AX=0024h
  6334. --------V-620022-----------------------------
  6335. INT 62 u - FGDRIVER v1.10 - "FG_GETXPOS" - GET GRAPHICS CURSOR ROW
  6336.     AX = 0022h
  6337. Return: AX = screen space Y coordinate of graphics cursor position
  6338. SeeAlso: AX=0021h,AX=0023h,AX=0024h
  6339. --------V-620023-----------------------------
  6340. INT 62 u - FGDRIVER v1.10 - "FG_MOVE" - SET GRAPHICS CURSOR POSITION
  6341.     AX = 0023h
  6342.     BX = new column
  6343.     CX = new row
  6344. Note:    this call is ignored in text modes
  6345. SeeAlso: AX=0021h,AX=0022h,AX=0024h
  6346. --------V-620024-----------------------------
  6347. INT 62 u - FGDRIVER v1.10 - "FG_MOVEREL" - ADJUST GRAPHICS CURSOR POSITION
  6348.     AX = 0024h
  6349.     BX = column offset
  6350.     CX = row offset
  6351. Note:    this call is ignored in text modes
  6352. SeeAlso: AX=0021h,AX=0022h,AX=0023h
  6353. --------V-620025-----------------------------
  6354. INT 62 u - FGDRIVER v1.10 - "FG_DRAW" - DRAW SOLID LINE TO ABSOLUTE POSITION
  6355.     AX = 0025h
  6356.     BX = endpoint column
  6357.     CX = endpoint row
  6358. Notes:    this call is ignored in text modes
  6359.     the starting point is the current graphics cursor position; the cursor
  6360.       position is updated
  6361. SeeAlso: AX=0026h,AX=0027h
  6362. --------V-620026-----------------------------
  6363. INT 62 u - FGDRIVER v1.10 - "FG_DRAWREL" - DRAW SOLID LINE TO RELATIVE POSITION
  6364.     AX = 0026h
  6365.     BX = endpoint column offset
  6366.     CX = endpoint row offset
  6367. Notes:    this call is ignored in text modes
  6368.     the starting point is the current graphics cursor position; the cursor
  6369.       position is updated
  6370. SeeAlso: AX=0025h,AX=0028h
  6371. --------V-620027-----------------------------
  6372. INT 62 u - FGDRIVER v1.10 - "FG_DASH" - DRAW DASHED LINE TO ABSOLUTE POSITION
  6373.     AX = 0027h
  6374.     BX = endpoint column
  6375.     CX = endpoint row
  6376.     DX = dash pattern (set bits cause drawn pixels)
  6377. Notes:    this call is ignored in text modes
  6378.     the starting point is the current graphics cursor position; the cursor
  6379.       position is updated
  6380. SeeAlso: AX=0025h,AX=0028h
  6381. --------V-620028-----------------------------
  6382. INT 62 u - FGDRIVER v1.10 - "FG_DASHREL" - DRAW DASHED LINE TO RELATVE POSITION
  6383.     AX = 0028h
  6384.     BX = endpoint column offset
  6385.     CX = endpoint row offset
  6386.     DX = dash pattern (set bits cause drawn pixels)
  6387. Notes:    this call is ignored in text modes
  6388.     the starting point is the current graphics cursor position; the cursor
  6389.       position is updated
  6390. SeeAlso: AX=0026h,AX=0027h
  6391. --------V-620029-----------------------------
  6392. INT 62 u - FGDRIVER v1.10 - "FG_SETCLIP" - SET CLIPPING REGION
  6393.     AX = 0029h
  6394.     BX = left edge of clipping region
  6395.     CX = right edge of clipping region
  6396.     DX = top edge of clipping region
  6397.     SI = bottom edge of clipping region
  6398. SeeAlso: AX=004Ah,AX=004Ch,AX=0052h,AX=0054h
  6399. --------V-62002A-----------------------------
  6400. INT 62 u - FGDRIVER v1.10 - "FG_RECT" - DRAW UNFILLED RECTANGLE IN SCREEN SPACE
  6401.     AX = 002Ah
  6402.     BX = left edge column
  6403.     CX = right edge column
  6404.     DX = top edge row
  6405.     SI = bottom edge row
  6406. SeeAlso: AX=002Bh,AX=002Ch,AX=002Eh,AX=00A2h
  6407. --------V-62002B-----------------------------
  6408. INT 62 u - FGDRIVER v1.10 - "FG_CLPRECT" - DRAW FILLED RECTANGLE IN SCREEN SPCE
  6409.     AX = 002Bh
  6410.     BX = screen space column of left edge
  6411.     CX = screen space column of right edge
  6412.     DX = screen space row of top edge
  6413.     SI = screen space row of bottom edge
  6414. Note:    this call is ignored in text modes
  6415. SeeAlso: AX=002Ah,AX=002Ch,AX=00A2h
  6416. --------V-62002C-----------------------------
  6417. INT 62 u - FGDRIVER v1.10 - "FG_DRECT" - DRAW DITHERED RECTANGLE IN SCRN SPACE
  6418.     AX = 002Ch
  6419.     BX = screen space column of left edge
  6420.     CX = screen space column of right edge
  6421.     DX = screen space row of top edge
  6422.     SI = screen space row of bottom edge
  6423.     ES:DI -> dithering matrix (video-mode dependent)
  6424. Note:    this call is ignored in text modes
  6425. SeeAlso: AX=002Bh,AX=00A2h
  6426. --------V-62002D-----------------------------
  6427. INT 62 u - FGDRIVER v1.10 - "FG_ELLIPSE" - DRAW UNFILLED ELLIPSE IN SCRN SPACE
  6428.     AX = 002Dh
  6429.     BX = horizontal semi-axis length in screen space units
  6430.     CX = vertical semi-axis length in screen space units
  6431. Notes:    this call is ignored in text modes
  6432.     the ellipse is centered at the current graphics cursor position
  6433. SeeAlso: AX=002Ah,AX=002Eh,AX=00A2h
  6434. --------V-62002E-----------------------------
  6435. INT 62 u - FGDRIVER v1.10 - "FG_POLYGON" - DRAW AN UNFILLED POLYGON
  6436.     AX = 002Eh
  6437.     CX = number of vertices in polygon
  6438.     ES:BX -> variable pointer record (see below)
  6439. SeeAlso: AX=002Dh,AX=0030h,AX=00A2h
  6440.  
  6441. Format of variable pointer record:
  6442. Offset    Size    Description
  6443.  00h    WORD    segment of WORD array containing vertex columns
  6444.  02h    WORD    offset of WORD array containing vertex columns
  6445.  04h    WORD    segment of WORD array containing vertex rows
  6446.  06h    WORD    offset of WORD array containing vertex rows
  6447. --------V-62002F-----------------------------
  6448. INT 62 u - FGDRIVER v1.10 - "FG_PAINT" - FLOOD CLOSED REGION WITH COLOR
  6449.     AX = 002Fh
  6450.     BX = column
  6451.     CX = row
  6452. Notes:    fills an arbitrary closed region around the specified point with the
  6453.       current color; the screen edges are not considered region boundaries
  6454.     ignored in text modes
  6455. --------V-620030-----------------------------
  6456. INT 62 u - FGDRIVER v1.10 - "FG_CIRCLE" - DRAW UNFILLED CIRCLE
  6457.     AX = 0030h
  6458.     BX = radius in horizontal screen space units (> 0)
  6459. Notes:    the circle is drawn in screen space, centered at the current graphics
  6460.       cursor position
  6461.     this call is ignored in text modes
  6462. SeeAlso: AX=00A2h
  6463. --------V-620031-----------------------------
  6464. INT 62 - FGDRIVER v1.10 - UNUSED
  6465.     AX = 0031h
  6466. Return: AX = 0000h
  6467. --------V-620032-----------------------------
  6468. INT 62 u - FGDRIVER v1.10 - "FG_TEXT" - DISPLAY STRING OF CHARACTERS
  6469.     AX = 0032h
  6470.     CX = length of string
  6471.     ES:BX -> string
  6472. Notes:    the string is displayed staring at the text cursor position using the
  6473.       current text attribute (text modes) or color index (graphics modes)
  6474.     the text cursor position is updated after this call
  6475. SeeAlso: AX=001Ah,AX=0033h,AX=0035h,AX=0036h
  6476. --------V-620033-----------------------------
  6477. INT 62 u - FGDRIVER v1.10 - "FG_LOCATE" - SET TEXT-MODE CURSOR POSITION
  6478.     AX = 0033h
  6479.     BX = row
  6480.     CX = column
  6481. Note:    there are only eight text cursors shared by successive groups of
  6482.       eight video pages (pages 0, 8, 16, ... share one cursor, 1, 9, ...
  6483.       share the second, etc)
  6484. SeeAlso: AX=0034h
  6485. --------V-620034-----------------------------
  6486. INT 62 u - FGDRIVER v1.10 - "FG_WHERE" - GET CURRENT CURSOR POSITION
  6487.     AX = 0034h
  6488.     ES:BX -> variable pointers (see below)
  6489. Return: indicated variables filled with cursor row and column for active
  6490.       display
  6491. Note:    FGDRIVER is the external video driver for the shareware
  6492.       Fastgraph/Light by Ted Gruber Software
  6493. SeeAlso: AX=0033h
  6494.  
  6495. Format of variable pointers:
  6496. Offset    Size    Description
  6497.  00h    WORD    segment of WORD buffer for cursor row
  6498.  02h    WORD    offset of WORD buffer for cursor row
  6499.  04h    WORD    segment WORD buffer for cursor column
  6500.  06h    WORD    offset WORD buffer for cursor column
  6501. --------V-620035-----------------------------
  6502. INT 62 u - FGDRIVER v1.10 - "FG_CHGATTR" - APPLY CURRENT TEXT ATTRIB TO CHARS
  6503.     AX = 0035h
  6504.     BX = number of characters to recolor
  6505. Notes:    this call is ignored in graphics modes
  6506.     starting at the current text cursor position, the specified number of
  6507.       characters have their attributes to the current text attribute
  6508. SeeAlso: AX=0036h
  6509. --------V-620036-----------------------------
  6510. INT 62 u - FGDRIVER v1.10 - "FG_CHGTEXT" - DISPLAY STRING AT CURSOR POSITION
  6511.     AX = 0036h
  6512.     CX = length of string
  6513.     ES:BX -> string to be displayed
  6514. Return: text cursor updated
  6515. Note:    this call is ignored in graphics modes
  6516. SeeAlso: AX=0032h,AX=0035h
  6517. --------V-620037-----------------------------
  6518. INT 62 u - FGDRIVER v1.10 - "FG_GETATTR" - GET CHARACTER ATTRIB FOR POSITION
  6519.     AX = 0037h
  6520.     BX = row
  6521.     CX = column
  6522. Return: AX = character attribute at specified location on active video page
  6523. Note:    this call is ignored in graphics modes
  6524. SeeAlso: AX=0019h,AX=0038h
  6525. --------V-620038-----------------------------
  6526. INT 62 u - FGDRIVER v1.10 - "FG_GETCHAR" - GET CHARACTER FOR SCREEN POSITION
  6527.     AX = 0038h
  6528.     BX = row
  6529.     CX = column
  6530. Return: AX = character at specified location on active video page
  6531. Note:    this call is ignored in graphics modes
  6532. SeeAlso: AX=0037h
  6533. --------V-620039-----------------------------
  6534. INT 62 - FGDRIVER v1.10 - UNUSED
  6535.     AX = 0039h to 003Bh
  6536. Return: AX = 0000h
  6537. --------V-62003C-----------------------------
  6538. INT 62 u - FGDRIVER v1.10 - "FG_GETPAGE" - GET ACTIVE VIDEO PAGE NUMBER
  6539.     AX = 003Ch
  6540. Return: AX = active video page (0000h-003Fh)
  6541. SeeAlso: AX=003Dh,AX=003Eh,AX=0040h
  6542. --------V-62003D-----------------------------
  6543. INT 62 u - FGDRIVER v1.10 - "FG_SETPAGE" - SET ACTIVE VIDEO PAGE
  6544.     AX = 003Dh
  6545.     BX = new video page (0000h to 003Fh)
  6546. Note:    the specified page must be a physical or virtual page
  6547. SeeAlso: AX=0001h,AX=003Ch,AX=003Fh,AX=0041h
  6548. --------V-62003E-----------------------------
  6549. INT 62 u - FGDRIVER v1.10 - "FG_GETVPAGE" - GET VISIBLE VIDEO PAGE NUMBER
  6550.     AX = 003Eh
  6551. Return: AX = visible video page (0000h-003Fh)
  6552. SeeAlso: AX=003Ch,AX=003Fh,AX=0040h
  6553. --------V-62003F-----------------------------
  6554. INT 62 u - FGDRIVER v1.10 - "FG_SETVPAGE" - SET VISIBLE VIDEO PAGE
  6555.     AX = 003Fh
  6556.     BX = new video page (0000h to 003Fh)
  6557. Note:    the specified page must be a physical or virtual page
  6558. SeeAlso: AX=0001h,AX=003Dh,AX=003Eh,AX=0041h
  6559. --------V-620040-----------------------------
  6560. INT 62 u - FGDRIVER v1.10 - "FG_GETHPAGE" - GET CURRENT HIDDEN VIDEO PAGE NUM
  6561.     AX = 0040h
  6562. Return: AX = current hidden video page number (0000h-003Fh)
  6563. SeeAlso: AX=003Ch,AX=003Eh,AX=0041h
  6564. --------V-620041-----------------------------
  6565. INT 62 u - FGDRIVER v1.10 - "FG_SETHPAGE" - SET HIDDEN VIDEO PAGE
  6566.     AX = 0041h
  6567.     BX = new hidden page (0000h to 003Fh)
  6568. Note:    specified page must be a physical page or a virtual page
  6569. SeeAlso: AX=003Dh,AX=003Fh,AX=0040h
  6570. --------V-620042-----------------------------
  6571. INT 62 u - FGDRIVER v1.10 - "FG_ALLOCATE" - CREATE VIRTUAL VIDEO PAGE
  6572.     AX = 0042h
  6573.     BX = page number (0000h-003Fh)
  6574. Return: AX = status
  6575.         0000h successful
  6576.         0001h specified page is a physical or logical page
  6577.         0007h virtual page created, but memory control blocks corrupted
  6578.         0008h not enough memory
  6579. Notes:    FGDRIVER is the external video driver for the shareware
  6580.       Fastgraph/Light by Ted Gruber Software
  6581.     the amount of memory required by the virtual video page depends on the
  6582.       current video mode
  6583. SeeAlso: AX=0043h,AX=009Dh,AX=009Fh
  6584. --------V-620043-----------------------------
  6585. INT 62 u - FGDRIVER v1.10 - "FG_FREEPAGE" - FREE VIRTUAL OR LOGICAL VIDEO PAGE
  6586.     AX = 0043h
  6587.     BX = page number (0000h-003Fh)
  6588. Return: AX = status
  6589.         0000h successful
  6590.         0001h specified page is a physical page
  6591.         0007h virtual page released, but memory control blocks corrupted
  6592.         0009h attempt to free a page which was never created
  6593. SeeAlso: AX=0042h,AX=009Dh,AX=009Eh,AX=009Fh
  6594. --------V-620044-----------------------------
  6595. INT 62 u - FGDRIVER v1.10 - "FG_GETADDR" - GET SEGMENT OF ACTIVE VIDEO PAGE
  6596.     AX = 0044h
  6597. Return: AX = segment of active video page
  6598. --------V-620045-----------------------------
  6599. INT 62 u - FGDRIVER v1.10 - "FG_RESIZE" - SET GRAPHICS MODE VIDEO PAGE SIZE
  6600.     AX = 0045h
  6601.     BX = new page width in pixels
  6602.     CX = new page height in pixels
  6603. Notes:    the visible page must be set to 0000h before making this call
  6604.     mouse, joysticks, expanded memory, and extended memory must be
  6605.       reinitialized after this call
  6606. SeeAlso: AX=000Ah,AX=000Bh,AX=0075h,AX=007Ah,AX=00A0h,AX=00A1h
  6607. --------V-620046-----------------------------
  6608. INT 62 u - FGDRIVER v1.10 - "FG_GETMAP" - STORE IMAGE AS MODE-INDEPENDNT BITMAP
  6609.     AX = 0046h
  6610.     ES:BX -> buffer for video mode-independent bitmap
  6611.     CX = width of bitmap in bytes
  6612.     DX = height of bitmap in pixel rows
  6613. Return: each bit in bitmap is set if corresponding pixel is of the current
  6614.       color, cleared otherwise
  6615. Note:    this call is ignored in text modes
  6616. SeeAlso: AX=0047h,AX=0048h
  6617. --------V-620047-----------------------------
  6618. INT 62 u - FGDRIVER v1.10 - "FG_DRAWMAP" - DISPLAY MODE-INDEPENDENT BIT MAP
  6619.     AX = 0047h
  6620.     ES:BX -> bitmap (each set bit is pixel drawn in current color)
  6621.     CX = width of bitmap in bytes
  6622.     DX = height of bitmap in pixel rows
  6623. SeeAlso: AX=0046h,AX=004Ah,AX=004Dh,AX=0052h
  6624. --------V-620048-----------------------------
  6625. INT 62 u - FGDRIVER v1.10 - "FG_GETIMAGE" - STORE IMAGE AS BITMAP
  6626.     AX = 0048h
  6627.     ES:BX -> buffer for video mode-specific bitmap
  6628.     CX = width of bitmap in bytes
  6629.     DX = height of bitmap in pixel rows
  6630. SeeAlso: AX=0046h,AX=0049h,AX=0062h
  6631. --------V-620049-----------------------------
  6632. INT 62 u - FGDRIVER v1.10 - "FG_DRWIMAGE" - DISPLAY BITMAPPED IMAGE
  6633.     AX = 0049h
  6634.     ES:BX -> video mode-specific bitmap
  6635.     CX = width of bitmap in bytes
  6636.     DX = height of bitmap in pixel rows
  6637. Note:    the image will be drawn with its lower left corner at the current
  6638.       cursor position (either text or graphics)    
  6639. SeeAlso: AX=0048h,AX=004Ah,AX=0062h
  6640. --------V-62004A-----------------------------
  6641. INT 62 u - FGDRIVER v1.10 - "FG_CLPIMAGE" - DISPLAY CLIPPED IMAGE (BITMAP)
  6642.     AX = 004Ah
  6643.     ES:BX -> mode-specific bitmap
  6644.     CX = width of bit map in bytes
  6645.     DX = height of bit map in pixel rows
  6646. Notes:    this call is ignored in text modes
  6647.     the image is drawn with its lower left corner at the current graphics
  6648.       cursor position
  6649.     the current clipping region is used, extended to a byte boundary
  6650. SeeAlso: AX=0029h,AX=0047h,AX=0049h,AX=004Ch,AX=0052h
  6651. --------V-62004B-----------------------------
  6652. INT 62 u - FGDRIVER v1.10 - "FG_REVIMAGE" - DISPLAY REVERSED IMAGE (BITMAP)
  6653.     AX = 004Bh
  6654.     ES:BX -> mode-specific bitmap
  6655.     CX = width of bitmap in bytes
  6656.     DX = height of bitmap in pixel rows
  6657. Notes:    this call is ignored in text modes
  6658.     the image is drawn with its lower left corner at the current graphics
  6659.       cursor position
  6660. SeeAlso: AX=004Ah,AX=004Ch
  6661. --------V-62004C-----------------------------
  6662. INT 62 u - FGDRIVER v1.10 - "FG_FLPIMAGE" - DISPLAY INV CLIPPED IMAGE (BITMAP)
  6663.     AX = 004Ch
  6664.     ES:BX -> mode-specific bitmap
  6665.     CX = width of bit map in bytes
  6666.     DX = height of bit map in pixel rows
  6667. Notes:    this call is ignored in text modes
  6668.     the image is drawn with its lower left corner at the current graphics
  6669.       cursor position
  6670.     the current clipping region is used, extended to a byte boundary
  6671. SeeAlso: AX=0029h,AX=004Ah
  6672. --------V-62004D-----------------------------
  6673. INT 62 u - FGDRIVER v1.10 - "FG_DISPLAY" - DISPLAY IMAGE (STD PIXEL RUN FORMAT)
  6674.     AX = 004Dh
  6675.     ES:BX -> pixel run map (pairs of bytes: color index, count)
  6676.     CX = number of pixel runs to display
  6677.     DX = width of image in pixels (> 0)
  6678. Notes:    this call is ignored in text modes
  6679.     the image is displayed with its lower left corner at the current
  6680.       graphics cursor position
  6681. SeeAlso: AX=0047h,AX=004Eh,AX=004Fh,AX=0050h,AX=0060h
  6682. --------V-62004E-----------------------------
  6683. INT 62 u - FGDRIVER v1.10 - "FG_DISPLAY" - DISPLAY IMAGE (PACKED PIXEL RUN FMT)
  6684.     AX = 004Eh
  6685.     ES:BX -> pixel run map (trios of bytes: colors, count1, count2; colors
  6686.         contains the color for the first run in its high nybble and the
  6687.         color for the second run in its low nybble)
  6688.     CX = number of pixel runs to display
  6689.     DX = width of image in pixels (> 0)
  6690. Notes:    this call is ignored in text modes
  6691.     the image is displayed with its lower left corner at the current
  6692.       graphics cursor position
  6693. SeeAlso: AX=004Dh,AX=004Fh,AX=0050h,AX=0060h
  6694. --------V-62004F-----------------------------
  6695. INT 62 u - FGDRIVER v1.10 - "FG_DISPFILE" - DISPLAY STORED IMAGE
  6696.     AX = 004Fh
  6697.     ES:BX -> ASCIZ filename
  6698.     CX = image width in pixels (> 0)
  6699.     DX = image format
  6700.         0000h Fastgraph standard pixel run format
  6701.         0001h packed pixel run format
  6702. Notes:    this call is ignored in text modes
  6703.     the image is displayed with its lower left corner at the current
  6704.       graphics cursor position
  6705. SeeAlso: AX=004Dh,AX=004Eh,AX=0050h,AX=0060h
  6706. --------V-620050-----------------------------
  6707. INT 62 u - FGDRIVER v1.10 - "FG_PATTERN" - SPECIFY DISPLAY PATTERN FOR COLOR
  6708.     AX = 0050h
  6709.     BX = index of pattern to define
  6710.     CX = number of predefined display pattern
  6711. Notes:    when displaying a pixel run map, Fastgraph uses the pattern associated
  6712.       with each color index rather than displaying the actual color
  6713.     this call has no effect in text and 256-color graphics modes
  6714. SeeAlso: AX=004Dh,AX=004Eh,AX=004Fh
  6715. --------V-620051-----------------------------
  6716. INT 62 u - FGDRIVER v1.10 - "FG_DRAWMASK" - DISPLAY IMAGE (MASKING MAP)
  6717.     AX = 0051h
  6718.     ES:BX -> array containing image stores as a masking map (see below)
  6719.     CX = number of pixel runs in masking map
  6720.     DX = width of masking map in pixels
  6721. Notes:    this call is ignored in text modes and in native EGA and VGA graphics
  6722.       modes
  6723.     the image is drawn with its lower left corner at the current graphics
  6724.       cursor position
  6725. SeeAlso: AX=0052h
  6726.  
  6727. Format of masking map:
  6728. Offset    Size    Description
  6729.  00h    BYTE    length of first "protect" run (pixels remain unchanged)
  6730.  01h    BYTE    length of first "zero" run (pixels set to background color)
  6731.  02h    BYTE    length of second "protect" run
  6732.  03h    BYTE    length of second "zero" run
  6733.     ...
  6734. --------V-620052-----------------------------
  6735. INT 62 u - FGDRIVER v1.10 - "FG_CLIPMASK" - DISPLAY CLIPPED IMAGE (MASKING MAP)
  6736.     AX = 0052h
  6737.     ES:BX -> array containing image stored as a masking map (see AX=0051h)
  6738.     CX = number of pixel runs in masking map
  6739.     DX = width of masking map in pixels
  6740. Notes:    this call is ignored in text modes and in native EGA and VGA graphics
  6741.       modes
  6742.     the image is drawn with its lower left corner at the current graphics
  6743.       cursor position
  6744. SeeAlso: AX=0029h,AX=004Ah,AX=0051h,AX=0053h,AX=0054h
  6745. --------V-620053-----------------------------
  6746. INT 62 u - FGDRIVER v1.10 - "FG_REVMASK" - DISPLAY REVERSED IMAGE (MASKING MAP)
  6747.     AX = 0053h
  6748.     ES:BX -> array containing image stored as a masking map (see AX=0051h)
  6749.     CX = number of pixel runs in masking map
  6750.     DX = width of masking map in pixels
  6751. Notes:    this call is ignored in text modes and in native EGA and VGA graphics
  6752.       modes
  6753.     the image is drawn with its lower left corner at the current graphics
  6754.       cursor position
  6755. SeeAlso: AX=0052h,AX=0054h
  6756. --------V-620054-----------------------------
  6757. INT 62 u - FGDRIVER v1.10 - "FG_FLIPMASK" - DISPLAY INV CLIPPED IMAGE (MASKMAP)
  6758.     AX = 0054h
  6759.     ES:BX -> array containing image stored as a masking map (see AX=0051h)
  6760.     CX = number of pixel runs in masking map
  6761.     DX = width of masking map in pixels
  6762. Notes:    this call is ignored in text modes and in native EGA and VGA graphics
  6763.       modes
  6764.     the image is drawn with its lower left corner at the current graphics
  6765.       cursor position
  6766. SeeAlso: AX=0029h,AX=0052h,AX=0053h
  6767. --------V-620055-----------------------------
  6768. INT 62 - FGDRIVER v1.10 - UNUSED
  6769.     AX = 0055h to 0059h
  6770. Return: AX = 0000h
  6771. --------V-62005A-----------------------------
  6772. INT 62 u - FGDRIVER v1.10 - "FG_SAVE" - COPY REGION FROM VISIBLE TO HIDDEN PAGE
  6773.     AX = 005Ah
  6774.     BX = left edge column
  6775.     CX = right edge column
  6776.     DX = top edge row
  6777.     SI = bottom edge row
  6778. Note:    left and right edges are adjusted to byte boundaries if necessary
  6779. SeeAlso: AX=005Bh
  6780. --------V-62005B-----------------------------
  6781. INT 62 u - FGDRIVER v1.10 - "FG_RESTORE" - COPY REGION FROM HIDDEN TO VIS PAGE
  6782.     AX = 005Bh
  6783.     BX = left edge column
  6784.     CX = right edge column
  6785.     DX = top edge row
  6786.     SI = bottom edge row
  6787. Note:    left and right edges are adjusted to byte boundaries if necessary
  6788. SeeAlso: AX=005Ah,AX=0064h
  6789. --------V-62005C-----------------------------
  6790. INT 62 u - FGDRIVER v1.10 - "FG_TRANSFER" - COPY REGION
  6791.     AX = 005Ch
  6792.     CX = source video page
  6793.     DX = destination video page
  6794.     ES:BX -> copy record (see below)
  6795. Note:    source and destination regions must not overlap if on the same page
  6796. SeeAlso: AX=005Dh,AX=005Fh
  6797.  
  6798. Format of copy record:
  6799. Offset    Size    Description
  6800.  00h    WORD    left edge column of source region
  6801.  02h    WORD    right edge column of source region
  6802.  04h    WORD    top edge row of source region
  6803.  06h    WORD    bottom edge row of source region
  6804.  08h    WORD    left edge of destination
  6805.  0Ah    WORD    bottom edge of destination
  6806. --------V-62005D-----------------------------
  6807. INT 62 u - FGDRIVER v1.10 - "FG_TCXFER" - COPY REGION EXCLUDING TRANSPARENT
  6808.     AX = 005Dh
  6809.     CX = source video page
  6810.     DX = destination video page
  6811.     ES:BX -> copy record (see AX=005Ch)
  6812. Notes:    pixels which are in any of the colors defined as transparent with
  6813.       AX=005Eh are left unchanged in the destination region
  6814.     source and destination regions must not overlap if on the same page
  6815.     this call is ignored in text modes
  6816. SeeAlso: AX=005Ch,AX=005Eh
  6817. --------V-62005E-----------------------------
  6818. INT 62 u - FGDRIVER v1.10 - "FG_TCMASK" - SET TRANSPARENT COLORS
  6819.     AX = 005Eh
  6820.     BX = colors to consider transparent (bit 0 = color 0, etc)
  6821. Notes:    this call is ignored in text modes
  6822.     the specified colors are considered transparent by AX=005Dh
  6823. SeeAlso: AX=005Dh
  6824. --------V-62005F-----------------------------
  6825. INT 62 u - FGDRIVER v1.10 - "FG_COPYPAGE" - TRANSFER VIDEO PAGE CONTENTS
  6826.     AX = 005Fh
  6827.     BX = source page number (0000h-003Fh)
  6828.     CX = destination page number (0000h-003Fh)
  6829. Note:    if both source and destination pages are logical pages, they must both
  6830.       be located in the same type (conventional, EMS, XMS) of memory
  6831. SeeAlso: AX=005Ch,AX=009Dh,AX=009Eh,AX=009Fh
  6832. --------V-620060-----------------------------
  6833. INT 62 u - FGDRIVER v1.10 - "FG_DISPPCX" - DISPLAY PCX FILE
  6834.     AX = 0060h
  6835.     ES:BX -> ASCIZ filename
  6836.     CX = flags
  6837.         bit 0: use current palette rather than PCX file's palette
  6838.         bits 1-15 reserved (0)
  6839. Return: AX = status
  6840.         0000h success
  6841.         0001h file not found
  6842.         0002h file is not a valid PCX file
  6843. Notes:    this call is ignored in text modes and Hercules low-resolution graphics
  6844.     the image is displayed with its upper left corner at the current
  6845.       graphics cursor position
  6846. SeeAlso: AX=004Dh,AX=004Eh,AX=004Fh,AX=0061h
  6847. --------V-620061-----------------------------
  6848. INT 62 u - FGDRIVER v1.10 - "FG_MAKEPCX" - CREATE PCX FILE FROM SCREEN WINDOW
  6849.     AX = 0061h
  6850.     BX = left edge in screen space units
  6851.     CX = right edge in screen space units
  6852.     DX = top edge in screen space units
  6853.     SI = bottom edge in screen space units
  6854.     ES:DI -> ASCIZ filename of PCX file to create
  6855. Return: AX = status
  6856.         0000h successful
  6857.         0001h file not created
  6858. Notes:    the PCX file is created from the specified region of the active video
  6859.       page; the left and right edges are adjusted to a byte boundary if
  6860.       necessary
  6861.     if the specified file already exists, it is overwritten
  6862.     this call is ignored in text and Hercules low-resolution graphics modes
  6863. SeeAlso: AX=0060h
  6864. --------V-620062-----------------------------
  6865. INT 62 u - FGDRIVER v1.10 - "FG_IMAGESIZ" - DETERMINE IMAGE STORAGE REQUIREMENT
  6866.     AX = 0062h
  6867.     BX = image width in pixels
  6868.     CX = image height in pixels
  6869. Return: DX:AX = size in bytes of mode-specific bitmap for current video mode
  6870. SeeAlso: AX=0048h
  6871. --------V-620063-----------------------------
  6872. INT 62 - FGDRIVER v1.10 - UNUSED
  6873.     AX = 0063h
  6874. Return: AX = 0000h
  6875. --------V-620064-----------------------------
  6876. INT 62 u - FGDRIVER v1.10 - "FG_FADEIN" - FADE IN HIDDEN PAGE
  6877.     AX = 0064h
  6878.     BX = delay (0000h = fastest possible fade-in)
  6879. Notes:    the current hidden page is copied to the current visible page in small
  6880.       random sections to produce a fade-in effect
  6881.     this call is ignored in text modes
  6882. SeeAlso: AX=005Bh,AX=0065h
  6883. --------V-620065-----------------------------
  6884. INT 62 u - FGDRIVER v1.10 - "FG_FADEOUT" - FADE OUT TO CURRENT COLOR
  6885.     AX = 0065h
  6886.     BX = delay (0000h = fastest possible fade-out)
  6887. Notes:    this call is ignored in text modes
  6888.     the current visible page is filled with pixels of the current color in
  6889.       small random sections to give a fade-out effect
  6890. SeeAlso: AX=0064h
  6891. --------V-620066-----------------------------
  6892. INT 62 u - FGDRIVER v1.10 - "FG_PAN" - SET SCREEN ORIGIN
  6893.     AX = 0066h
  6894.     BX = new column for screen origin
  6895.     CX = new row for screen origin
  6896. SeeAlso: AX=0067h
  6897. --------V-620067-----------------------------
  6898. INT 62 u - FGDRIVER v1.10 - "FG_SCROLL" - VERTICALLY SCROLL SCREEN REGION
  6899.     AX = 0067h
  6900.     BX = left edge column
  6901.     CX = right edge column
  6902.     DX = top edge row
  6903.     SI = bottom edge row
  6904.     DI = number of pixels by which to scroll (positive scrolls up,
  6905.         negative scrolls down)
  6906.     ES = type of scroll
  6907.         0000h circular (rows scrolled off are copied to vacated rows)
  6908.         else vacated rows are filled with the current color
  6909. Notes:    in graphics modes, the left and right edges are adjusted to byte
  6910.       boundaries if necessary
  6911.     circular scrolling uses part of the hidden page as a workspace
  6912. SeeAlso: AX=0066h
  6913. --------V-620068-----------------------------
  6914. INT 62 - FGDRIVER v1.10 - UNUSED
  6915.     AX = 0068h to 006Ch
  6916. Return: AX = 0000h
  6917. --------V-62006D-----------------------------
  6918. INT 62 u - FGDRIVER v1.10 - "FG_WAITKEY" - FLUSH KEYBOARD BUFFER AND AWAIT KEY
  6919.     AX = 006Dh
  6920. Return: after next key pressed
  6921. SeeAlso: AX=006Eh,AX=006Fh,AX=0096h
  6922. --------V-62006E-----------------------------
  6923. INT 62 u - FGDRIVER v1.10 - "FG_GETKEY" - GET NEXT KEYSTROKE
  6924.     AX = 006Eh
  6925.     ES:BX -> variable pointer record (see below)
  6926. Return: (after next keystroke if no typeahead) variables updated
  6927. SeeAlso: AX=006Dh,AX=006Fh,AX=0070h
  6928.  
  6929. Format of variable pointer record:
  6930. Offset    Size    Description
  6931.  00h    WORD    segment of BYTE buffer for ASCII keycode
  6932.  02h    WORD    offset of BYTE buffer for ASCII keycode
  6933.  04h    WORD    segment of BYTE buffer for extended keycode
  6934.  06h    WORD    offset of BYTE buffer for extended keycode
  6935. --------V-62006F-----------------------------
  6936. INT 62 u - FGDRIVER v1.10 - "FG_INTKEY" - GET KEYSTROKE, NO WAIT
  6937.     AX = 006Fh
  6938.     ES:BX -> variable pointer record (see below)
  6939. Return: variables updated
  6940. Note:    if the keyboard buffer is empty, both the ASCII and extended keycodes
  6941.       are set to 00h
  6942. SeeAlso: AX=006Dh,AX=006Eh,AX=0070h,AX=0079h
  6943.  
  6944. Format of variable pointer record:
  6945. Offset    Size    Description
  6946.  00h    WORD    segment of BYTE buffer for ASCII keycode
  6947.  02h    WORD    offset of BYTE buffer for ASCII keycode
  6948.  04h    WORD    segment of BYTE buffer for extended keycode
  6949.  06h    WORD    offset of BYTE buffer for extended keycode
  6950. --------V-620070-----------------------------
  6951. INT 62 u - FGDRIVER v1.10 - "FG_CAPSLOCK" - GET STATE OF CAPSLOCK KEY
  6952.     AX = 0070h
  6953. Return: AX = CapsLock state (0000h off, 0001h on)
  6954. SeeAlso: AX=006Eh,AX=006Fh,AX=0071h,AX=0072h,AX=0074h
  6955. --------V-620071-----------------------------
  6956. INT 62 u - FGDRIVER v1.10 - "FG_SETCAPS" - SET STATE OF CAPSLOCK KEY
  6957.     AX = 0071h
  6958.     BX = new state (0000h off, 0001h on)
  6959. SeeAlso: AX=0070h,AX=0073h
  6960. --------V-620072-----------------------------
  6961. INT 62 u - FGDRIVER v1.10 - "FG_NUMLOCK" - GET STATE OF NUMLOCK KEY
  6962.     AX = 0072h
  6963. Return: AX = NumLock state (0000h off, 0001h on)
  6964. SeeAlso: AX=0070h,AX=0074h
  6965. --------V-620073-----------------------------
  6966. INT 62 u - FGDRIVER v1.10 - "FG_SETNUM" - SET STATE OF NUMLOCK KEY
  6967.     AX = 0073h
  6968.     BX = new state (0000h off, 0001h on)
  6969. SeeAlso: AX=0071h,AX=0072h
  6970. --------V-620074-----------------------------
  6971. INT 62 u - FGDRIVER v1.10 - "FG_SCRLOCK" - GET STATE OF SCROLL LOCK KEY
  6972.     AX = 0074h
  6973. Return: AX = ScrollLock state (0000h off, 0001h on)
  6974. SeeAlso: AX=0070h,AX=0072h
  6975. --------V-620075-----------------------------
  6976. INT 62 u - FGDRIVER v1.10 - "FG_INITJOY" - INITIALIZE JOYSTICK USE
  6977.     AX = 0075h
  6978.     BX = joystick number (0001h or 0002h)
  6979. Return: AX = status
  6980.         0000h successful
  6981.         FFFFh joystick not connected or no game port
  6982. Note:    Fastgraph assumes that the requested joystick is centered at the time
  6983.       this function is called
  6984. SeeAlso: AX=0076h,AX=0077h,AX=0078h,AX=0079h
  6985. --------V-620076-----------------------------
  6986. INT 62 u - FGDRIVER v1.10 - "FG_GETXJOY" - GET HORIZONTAL POSITION OF JOYSTICK
  6987.     AX = 0076h
  6988.     BX = joystick number (0001h or 0002h)
  6989. Return: AX = horizontal position of joystick
  6990.         FFFFh if joystick uninitialized or not present
  6991. Notes:    the actual coordinates are processor- and joystick-dependent
  6992.     you must call AX=0075h before this function
  6993. SeeAlso: AX=0075h,AX=0077h,AX=0078h
  6994. --------V-620077-----------------------------
  6995. INT 62 u - FGDRIVER v1.10 - "FG_GETYJOY" - GET VERTICAL POSITION OF JOYSTICK
  6996.     AX = 0077h
  6997.     BX = joystick number (0001h or 0002h)
  6998. Return: AX = vertical position of joystick
  6999.         FFFFh if joystick uninitialized or not present
  7000. Notes:    the actual coordinates are processor- and joystick-dependent
  7001.     you must call AX=0075h before this function
  7002. SeeAlso: AX=0075h,AX=0076h,AX=0078h
  7003. --------V-620078-----------------------------
  7004. INT 62 u - FGDRIVER v1.10 - "FG_BUTTON" - GET JOYSTICK BUTTON STATE
  7005.     AX = 0078h
  7006.     BX = joystick number (0001h or 0002h)
  7007. Return: AX = button states
  7008.         bit 0: top button pressed
  7009.         bit 1: bottom button pressed
  7010. SeeAlso: AX=0075h,AX=0076h,AX=0077h,AX=0079h
  7011. --------V-620079-----------------------------
  7012. INT 62 u - FGDRIVER v1.10 - "FG_INTJOY" - GET KEYCODES CORRESP TO JOYSTICK POS
  7013.     AX = 0079h
  7014.     CX = joystick number (0001h or 0002h)
  7015.     ES:BX -> variable pointer record (see below)
  7016. Notes:    if the indicated joystick has not been initialized with AX=0075h, both
  7017.       the button code and joystick position will be set to 00h
  7018.     if either button is pressed, a button code of 0Dh is returned;
  7019.       otherwise, a button code of 00h is returned
  7020. SeeAlso: AX=006Fh,AX=0075h,AX=0078h
  7021.  
  7022. Format of variable pointer record:
  7023. Offset    Size    Description
  7024.  00h    WORD    segment of BYTE buffer for button code
  7025.  02h    WORD    offset of BYTE buffer for button code
  7026.  04h    WORD    segment of BYTE buffer for joystick position
  7027.  06h    WORD    offset of BYTE buffer for joystick position
  7028. --------V-62007A-----------------------------
  7029. INT 62 u - FGDRIVER v1.10 - "FG_MOUSEINI" - INITIALIZE MOUSE SUPPORT
  7030.     AX = 007Ah
  7031. Return: AX = status
  7032.         0002h two-button mouse
  7033.         0003h three-button mouse
  7034.         FFFFh initialization failed
  7035. Note:    after this call, the mouse cursor is invisible
  7036. SeeAlso: AX=007Bh,AX=007Ch,AX=007Eh,AX=0080h,INT 33/AX=0000h
  7037. --------V-62007B-----------------------------
  7038. INT 62 u - FGDRIVER v1.10 - "FG_MOUSEVIS" - SET MOUSE CURSOR VISIBILITY
  7039.     AX = 007Bh
  7040.     BX = new state (0000h invisible, 0001h visible)
  7041. SeeAlso: AX=007Ah,AX=007Eh,INT 33/AX=0001h,INT 33/AX=0002h
  7042. --------V-62007C-----------------------------
  7043. INT 62 u - FGDRIVER v1.10 - "FG_MOUSEBUT" - GET MOUSE BUTTON PRESS/RELEASE CNTS
  7044.     AX = 007Ch
  7045.     CX = mouse button (1 = left press, 2 = right press, 3 = middle press,
  7046.               -1=left release, -2=right release, -3=middle release)
  7047.     ES:BX -> variable pointer record (see below)
  7048. Return: variables updated
  7049. Note:    returns the count of presses or releases since the last call to this
  7050.       function; if the count is zero, row and col will also be zero
  7051. SeeAlso: AX=007Ah,INT 33/AX=0005h,INT 33/AX=0006h
  7052.  
  7053. Format of variable pointer record:
  7054. Offset    Size    Description
  7055.  00h    WORD    segment of WORD buffer for press/release count
  7056.  02h    WORD    offset of WORD buffer for press/release count
  7057.  04h    WORD    segment of WORD buffer for screen space col of last press/rls
  7058.  06h    WORD    offset of WORD buffer for screen space col of last press/rels
  7059.  08h    WORD    segment of WORD buffer for screen space row of last press/rls
  7060.  0Ah    WORD    offset of WORD buffer for screen space row of last press/rls
  7061. --------V-62007D-----------------------------
  7062. INT 62 u - FGDRIVER v1.10 - "FG_MOUSEPOS" - GET CURRENT MOUSE POSITION
  7063.     AX = 007Dh
  7064.     ES:BX -> variable pointer record (see below)
  7065. SeeAlso: AX=007Ah,AX=0081h
  7066.  
  7067. Format of variable pointer record:
  7068. Offset    Size    Description
  7069.  00h    WORD    segment of WORD buffer for mouse column
  7070.  02h    WORD    offset of WORD buffer for mouse column
  7071.  04h    WORD    segment of WORD buffer for mouse row
  7072.  06h    WORD    offset of WORD buffer for mouse row
  7073.  08h    WORD    segment of WORD buffer for button status
  7074.  0Ah    WORD    offset of WORD buffer for button status
  7075. Note:    button status: bit 0 = left button, bit 1 = right, bit 2 = middle
  7076. --------V-62007E-----------------------------
  7077. INT 62 u - FGDRIVER v1.10 - "FG_MOUSECUR" - SPECIFY TEXT-MODE MOUSE CURSOR
  7078.     AX = 007Eh
  7079.     BX = screen mask
  7080.     CX = cursor mask
  7081. Note:    this call is ignored in graphics modes
  7082. SeeAlso: AX=007Ah,AX=007Fh,INT 33/AX=000Ah
  7083. --------V-62007F-----------------------------
  7084. INT 62 u - FGDRIVER v1.10 - "FG_MOUSEPTR" - SPECIFY GRAPH-MODE MOUSE CURSOR
  7085.     AX = 007Fh
  7086.     ES:BX -> masks (16-byte screen mask followed by 16-byte cursor mask)
  7087.     CX = X offset of hot spot from upper left corner
  7088.     DX = Y offset of hot spot from upper left corner
  7089. Note:    this call is ignored in text modes
  7090. SeeAlso: AX=007Ah,AX=007Eh,INT 33/AX=0009h
  7091. --------V-620080-----------------------------
  7092. INT 62 u - FGDRIVER v1.10 - "FG_MOUSELIM" - SPECIFY MOUSE CURSOR LIMITS
  7093.     AX = 0080h
  7094.     BX = left-most position allowed for mouse cursor
  7095.     CX = right-most position allowed
  7096.     DX = top-most position allowed
  7097.     SI = bottom-most position allowed
  7098. SeeAlso: AX=007Ah,AX=0081h,INT 33/AX=0007h,INT 33/AX=0008h
  7099. --------V-620081-----------------------------
  7100. INT 62 u - FGDRIVER v1.10 - "FG_MOUSEMOV" - SET MOUSE CURSOR POSITION
  7101.     AX = 0081h
  7102.     BX = new column
  7103.     CX = new row
  7104. Note:    will not move the mouse cursor outside the bounding box specified with
  7105.       AX=0080h
  7106. SeeAlso: AX=007Ah,AX=007Dh,AX=0080h,INT 33/AX=0004h
  7107. --------V-620082-----------------------------
  7108. INT 62 u - FGDRIVER v1.10 - "FG_MOUSESPD" - SET MOUSE CURSOR SPEED
  7109.     AX = 0082h
  7110.     BX = horizontal mickeys per eight pixels of movement (default 16)
  7111.     CX = vertical mickeys per eight pixels of movement (default 16)
  7112. SeeAlso: INT 33/AX=000Fh,INT 33/AX=001Ah
  7113. --------V-620083-----------------------------
  7114. INT 62 - FGDRIVER v1.10 - UNUSED
  7115.     AX = 0083h to 0087h
  7116. Return: AX = 0000h
  7117. --------V-620088-----------------------------
  7118. INT 62 u - FGDRIVER v1.10 - "FG_SOUND" - MAKE SOUND FOR SPECIFIED DURATION
  7119.     AX = 0088h
  7120.     BX = frequency in Hertz (18-32767)
  7121.     CX = duration in clock ticks (0000h or negative for continuous sound)
  7122. Note:    ignored if asynchronous sound (AX=0089h,AX=008Bh,AX=008Dh) is in
  7123.       progress
  7124. SeeAlso: AX=0089h,AX=008Ah,AX=008Eh,AX=0090h
  7125. --------V-620089-----------------------------
  7126. INT 62 u - FGDRIVER v1.10 - "FG_SOUNDS" - PLAY SOUNDS IN BACKGROUND
  7127.     AX = 0089h
  7128.     CX = number of times to cycle through sound list
  7129.     ES:BX -> sounds array (see below)
  7130. Note:    ignored if asynchronous sound (AX=0089h,AX=008Bh,AX=008Dh) is in
  7131.       progress
  7132. SeeAlso: AX=0088h,AX=008Eh,AX=008Fh
  7133.  
  7134. Format of sounds array element:
  7135. Offset    Size    Description
  7136.  00h    WORD    frequency of sound in Hertz (0000h ends array)
  7137.  02h    WORD    duration of sound in clock ticks
  7138. --------V-62008A-----------------------------
  7139. INT 62 u - FGDRIVER v1.10 - "FG_VOICE" - START SOUND
  7140.     AX = 008Ah
  7141.     BX = channel on TI sound chip
  7142.         1-3 = channels 1-3, 4 = channel 4 with periodic noise,
  7143.         5 = channel 4 with white noise
  7144.     CX = frequency in Hz (18-32767 for channels 1-3; 0=512 Hz, 1=1024 Hz, 
  7145.         2=2048 Hz for channels 4 and 5)
  7146.     DX = volume
  7147.     SI = duration in clock ticks (continuous if <= 0)
  7148. Notes:    FGDRIVER is the external video driver for the shareware
  7149.       Fastgraph/Light by Ted Gruber Software
  7150.     only available on PCjr and Tandy 1000
  7151. SeeAlso: AX=0088h,AX=008Bh,AX=008Ch
  7152. --------V-62008B-----------------------------
  7153. INT 62 u - FGDRIVER v1.10 - "FG_VOICES" - PLAY SOUNDS IN BACKGROUND
  7154.     AX = 008Bh
  7155.     ES:BX -> tone array (see below)
  7156.     CX = number of times to repeat tone array
  7157. Notes:    FGDRIVER is the external video driver for the shareware
  7158.       Fastgraph/Light by Ted Gruber Software
  7159.     only available on PCjr and Tandy 1000
  7160. SeeAlso: AX=008Ah,AX=008Dh,AX=008Eh,AX=008Fh,AX=0091h
  7161.  
  7162. Format of tone array element:
  7163. Offset    Size    Description
  7164.  00h    WORD    channel number (0000h terminates array)
  7165.  02h    WORD    frequency
  7166.  04h    WORD    volume
  7167.  06h    WORD    duration in 1/72.8 seconds
  7168. --------V-62008C-----------------------------
  7169. INT 62 u - FGDRIVER v1.10 - "FG_MUSIC" - PLAY SERIES OF NOTES
  7170.     AX = 008Ch
  7171.     ES:BX -> '$'-terminated music string in BASIC PLAY format
  7172. Return: after music completed
  7173. Note:    ignored if asynchronous sound (AX=0089h,AX=008Bh,AX=008Dh) is in
  7174.       progress
  7175. SeeAlso: AX=008Ah,AX=008Dh
  7176. --------V-62008D-----------------------------
  7177. INT 62 u - FGDRIVER v1.10 - "FG_MUSICB" - PLAY SERIES OF NOTES IN BACKGROUND
  7178.     AX = 008Dh
  7179.     CX = number of repetitions (negative = continuous play)
  7180.     ES:BX -> '$'-terminated music string in BASIC PLAY format
  7181. Note:    ignored if asynchronous sound (AX=0089h,AX=008Bh,AX=008Dh) is in
  7182.       progress
  7183. SeeAlso: AX=008Bh,AX=008Ch,AX=008Eh,AX=008Fh,AX=0091h
  7184. --------V-62008E-----------------------------
  7185. INT 62 u - FGDRIVER v1.10 - "FG_HUSH" - STOP ASYNCHRONOUS SOUND IMMEDIATELY
  7186.     AX = 008Eh
  7187. Note:    immediately stops any sounds started with "FG_MUSICB", "FG_SOUNDS",
  7188.       or AX=008Bh; ignored if no asynchronous sound is playing
  7189. SeeAlso: AX=0088h,AX=008Bh,AX=008Fh,AX=0090h,AX=0091h
  7190. --------V-62008F-----------------------------
  7191. INT 62 u - FGDRIVER v1.10 - "FG_HUSHNEXT" - STOP ASYNCHRONOUS SOUND
  7192.     AX = 008Fh
  7193. Note:    stops any sounds started with "FG_MUSICB", "FG_SOUNDS", or AX=008Bh
  7194.       after the current repetition completes; ignored unless asynchronous
  7195.       sound is continuous
  7196. SeeAlso: AX=008Bh,AX=008Eh,AX=0090h
  7197. --------V-620090-----------------------------
  7198. INT 62 u - FGDRIVER v1.10 - "FG_QUIET" - STOP CONTINUOUS SYNCHRONOUS SOUND
  7199.     AX = 0090h
  7200. Note:    this call has no effect if there is no continuous sound playing
  7201. SeeAlso: AX=008Eh,AX=008Fh,AX=0091h
  7202. --------V-620091-----------------------------
  7203. INT 62 u - FGDRIVER v1.10 - "FG_PLAYING" - DETERMINE WHETHER ASYNC SOUND ACTIVE
  7204.     AX = 0091h
  7205. Return: AX = sound state (0 = no asynchronous sound, 1 = async sound playing)
  7206. SeeAlso: AX=008Bh,AX=008Dh,AX=0090h
  7207. --------V-620092-----------------------------
  7208. INT 62 u - FGDRIVER v1.10 - "FG_RESUME" - RESTART ASYNCHRONOUS SOUND
  7209.     AX = 0092h
  7210. SeeAlso: AX=008Eh,AX=008Fh,AX=0090h
  7211. --------V-620093-----------------------------
  7212. INT 62 u - FGDRIVER v1.10 - "FG_SUSPEND" - TEMPORARILY STOP ASYNCHRONOUS SOUND
  7213.     AX = 0093h
  7214. Notes:    this call has no effect if there is no asynchronous sound in progress
  7215.     the program must not exit while sound is suspended
  7216. SeeAlso: AX=0092h
  7217. --------V-620094-----------------------------
  7218. INT 62 - FGDRIVER v1.10 - UNUSED
  7219.     AX = 0094h to 0095h
  7220. Return: AX = 0000h
  7221. --------V-620096-----------------------------
  7222. INT 62 u - FGDRIVER v1.10 - "FG_WAITFOR" - DELAY FOR SPECIFIED DURATION
  7223.     AX = 0096h
  7224.     BX = duration in clock ticks
  7225. Return: after delay elapses
  7226. SeeAlso: AX=006Dh,AX=0097h,INT 1A/AX=FF01h
  7227. --------V-620097-----------------------------
  7228. INT 62 u - FGDRIVER v1.10 - "FG_STALL" - PAUSE FOR SPECIFIED DURATION
  7229.     AX = 0097h
  7230.     BX = duration in processor-dependent delay units (see AX=0098h)
  7231. Return: after delay elapses
  7232. SeeAlso: AX=0096h,AX=0098h,INT 2F/AX=1224h
  7233. --------V-620098-----------------------------
  7234. INT 62 u - FGDRIVER v1.10 - "FG_MEASURE" - GET DELAY UNITS PER CLOCK TICK
  7235.     AX = 0098h
  7236. Return: AX = delay units per clock tick (processor-dependent)
  7237. Note:    delay units are used by "FG_STALL" (AX=0097h)
  7238. SeeAlso: AX=0097h
  7239. --------V-620099-----------------------------
  7240. INT 62 u - FGDRIVER v1.10 - "FG_GETCLOCK" - GET CLOCK TICKS SINCE MIDNIGHT
  7241.     AX = 0099h
  7242. Return: DX:AX = number of clock ticks since midnight
  7243. Note:    FGDRIVER is the external video driver for the shareware
  7244.       Fastgraph/Light by Ted Gruber Software
  7245. --------V-62009A-----------------------------
  7246. INT 62 - FGDRIVER v1.10 - UNUSED
  7247.     AX = 009Ah
  7248. Return: AX = 0000h
  7249. --------V-62009B-----------------------------
  7250. INT 62 u - FGDRIVER v1.10 - "FG_MEMAVAIL" - QUERY AMOUNT OF FREE MEMORY
  7251.     AX = 009Bh
  7252. Return: DX:AX = number of bytes of conventional memory available
  7253. SeeAlso: AX=009Dh
  7254. --------V-62009C-----------------------------
  7255. INT 62 u - FGDRIVER v1.10 - "FG_SETFUNC" - SET LOGICAL OPERATION FOR VIDEO OPS
  7256.     AX = 009Ch
  7257.     BX = operation
  7258.         0000h replacement
  7259.         0001h AND
  7260.         0002h OR
  7261.         0003h XOR
  7262. Note:    only available in native EGA/VGA graphics mode (0Dh to 12h)
  7263. --------V-62009D-----------------------------
  7264. INT 62 u - FGDRIVER v1.10 - "FG_ALLOCCMS" - CREATE LOGICAL VIDEO PAGE (CONVMEM)
  7265.     AX = 009Dh
  7266.     BX = page number (0001h-003Fh)
  7267. Return: AX = status
  7268.         0000h successful
  7269.         FFFCh insufficient memory
  7270.         FFFDh page already created, or exists as physical or virtual page
  7271.         FFFEh invalid page number
  7272. Note:    the only operation which is allowed on logical pages is AX=005Fh
  7273. SeeAlso: AX=0043h,AX=005Fh,AX=009Bh,AX=009Eh,AX=009Fh
  7274. --------V-62009E-----------------------------
  7275. INT 62 u - FGDRIVER v1.10 - "FG_ALLOCEMS" - CREATE LOGICAL VIDEO PAGE (EMS)
  7276.     AX = 009Eh
  7277.     BX = page number (0001h-003Fh)
  7278. Return: AX = status
  7279.         0000h successful
  7280.         FFFCh insufficient memory
  7281.         FFFDh page already created, or exists as physical or virtual page
  7282.         FFFEh invalid page number
  7283.         FFFFh memory manager not initialized
  7284. Notes:    must first call AX=00A0h
  7285.     the only operation which is allowed on logical pages is AX=005Fh
  7286. SeeAlso: AX=0043h,AX=005Fh,AX=009Dh,AX=009Fh,AX=00A0h
  7287. --------V-62009F-----------------------------
  7288. INT 62 u - FGDRIVER v1.10 - "FG_ALLOCXMS" - CREATE LOGICAL VIDEO PAGE (XMS)
  7289.     AX = 009Fh
  7290.     BX = page number (0001h-003Fh)
  7291. Return: AX = status (see AX=009Eh)
  7292. Notes:    must first call AX=00A1h
  7293.     the only operation which is allowed on logical pages is AX=005Fh
  7294. SeeAlso: AX=0043h,AX=005Fh,AX=009Dh,AX=009Eh,AX=00A1h
  7295. --------V-6200A0-----------------------------
  7296. INT 62 u - FGDRIVER v1.10 - "FG_INITEMS" - INITIALIZE EXPANDED MEMORY USE
  7297.     AX = 00A0h
  7298. Return: AX = status
  7299.         0000h successful
  7300.         FFFFh expanded memory manager inaccessible or not installed
  7301. SeeAlso: AX=009Eh,AX=00A1h
  7302. --------V-6200A1-----------------------------
  7303. INT 62 u - FGDRIVER v1.10 - "FG_INITXMS" - INITIALIZE EXTENDED MEMORY USE
  7304.     AX = 00A1h
  7305. Return: AX = status
  7306.         0000h successful
  7307.         FFFFh extended memory manager inaccessible or not installed
  7308. SeeAlso: AX=009Fh,AX=00A0h
  7309. --------V-6200A2-----------------------------
  7310. INT 62 u - FGDRIVER v1.10 - "FG_BOX" - DRAW UNFILLED RECTANGLE
  7311.     AX = 00A2h
  7312.     BX = left column
  7313.     CX = right column
  7314.     DX = top row
  7315.     SI = bottom row
  7316. Notes:    FGDRIVER is the external video driver for the shareware
  7317.       Fastgraph/Light by Ted Gruber Software
  7318.     the rectangle is drawn in screen space, respecting the clipping region,
  7319.       width edges of the width specified with AX=00A3h (default = 1 is set
  7320.       by "FG_SETMODE")
  7321.     this function has no effect in text modes
  7322. SeeAlso: AX=002Bh,AX=002Ch,AX=002Eh,AX=0030h,AX=00A3h
  7323. --------V-6200A3-----------------------------
  7324. INT 62 u - FGDRIVER v1.10 - "FG_BOXDEPTH" - SET RECTANGLE BORDER WIDTH
  7325.     AX = 00A3h
  7326.     BX = width of left and right edges in pixels (> 0)
  7327.     CX = width of top and bottom edges in pixels (> 0)
  7328. SeeAlso: AX=00A2h
  7329. --------V-6200A4-----------------------------
  7330. INT 62 u - FGDRIVER v1.10 - "FG_GETDACS" - GET VIDEO DAC CONTENTS
  7331.     AX = 00A4h
  7332.     CX = number of DAC registers to return (0001h to 0100h)
  7333.     DX = starting DAC register number (0000h to 00FFh)
  7334.     ES:BX -> buffer for DAC red/green/blue triples
  7335. Note:    the register number wraps back to zero after FFh
  7336. SeeAlso: AX=001Ch,AX=00A5h
  7337. --------V-6200A5-----------------------------
  7338. INT 62 u - FGDRIVER v1.10 - "FG_SETDACS" - SET VIDEO DAC CONTENTS
  7339.     AX = 00A5h
  7340.     CX = number of DAC registers to set (0001h to 0100h)
  7341.     DX = starting DAC register number (0000h to 00FFh)
  7342.     ES:BX -> buffer containing DAC red/green/blue triples
  7343. Notes:    the register number wraps back to zero after FFh
  7344.     this call has no effect in text modes or graphics modes below 11h
  7345. SeeAlso: AX=001Bh,AX=00A4h
  7346. --------T-6201-------------------------------
  7347. INT 62 - Cswitch - GIVE UP REST OF TIME-SLICE
  7348.     AH = 01h
  7349. Program: Cswitch is a set of multitasking functions by Herb Rose
  7350. SeeAlso: AH=05h,AH=06h,INT 15/AX=1000h
  7351. --------T-6202-------------------------------
  7352. INT 62 - Cswitch - WAIT FOR SEMAPHORE
  7353.     AH = 02h
  7354.     DX = semaphore number (0-63)
  7355. Return: AX = FFFFh bad semaphore number
  7356.          else  success
  7357. SeeAlso: AH=03h,AH=04h
  7358. --------T-6203-------------------------------
  7359. INT 62 - Cswitch - CHECK SEMAPHORE
  7360.     AH = 03h
  7361.     DX = semaphore number (0-63)
  7362. Return: AX = FFFFh not owned
  7363.          else  owned
  7364. SeeAlso: AH=02h,AH=04h
  7365. --------T-6204-------------------------------
  7366. INT 62 - Cswitch - TRIGGER SEMAPHORE
  7367.     AH = 04h
  7368.     DX = semaphore number (0-63)
  7369. Return: AX = FFFFh bad semaphore number
  7370.          else  success
  7371. SeeAlso: AH=02h,AH=03h
  7372. --------T-6205-------------------------------
  7373. INT 62 - Cswitch - SLEEP
  7374.     AH = 05h
  7375.     BX = seconds to sleep
  7376. SeeAlso: AH=01h,AH=06h,AH=08h"Cswitch"
  7377. --------T-6206-------------------------------
  7378. INT 62 - Cswitch - SUSPEND
  7379.     AH = 06h
  7380. SeeAlso: AH=05h,AH=08h"Cswitch"
  7381. --------T-6207-------------------------------
  7382. INT 62 - Cswitch - SPAWN
  7383.     AH = 07h
  7384.     ES:BX -> function address to start executing at
  7385.     CX = priority (1-10)
  7386. Return: AX = FFFDh  no free memory control blocks
  7387.        = FFFEh  no free task control blocks
  7388.        = FFFFh  not enough memory to create new task stack
  7389.        = >0        the tcb number of the new task, indicating no error
  7390. SeeAlso: AH=0Fh,AH=10h
  7391. --------T-6208-------------------------------
  7392. INT 62 - Cswitch - WAKE UP TASK
  7393.     AH = 08h
  7394.     BX = tcb identifier
  7395. SeeAlso: AH=05h,AH=06h
  7396. ----------6208--CXFFFE-----------------------
  7397. INT 62 - MS SQL Server/Sybase DBLIBRARY interface - UNINSTALL/GET PSP ADDR
  7398.     AH = 08h
  7399.     CX = FFFEh
  7400.     DX = FFFFh
  7401. Return: AX = PSP address of resident DBLIBRARY
  7402. Note:    this call does not free the memory allocated to the TSR; the calling
  7403.       code must do the deallocation.
  7404. SeeAlso: INT 62"DBLIBRARY"
  7405. --------T-6209-------------------------------
  7406. INT 62 - Cswitch - SET PRIORITY
  7407.     AH = 09h
  7408.     BX = new base priority (1-10)
  7409. Note:    the lower the priority is numerically, the more often the task will run
  7410. --------T-620A-------------------------------
  7411. INT 62 - Cswitch - TEST MESSAGE QUEUE
  7412.     AH = 0Ah
  7413.     DX = queue number (0-63)
  7414. Return: AX = FFFFh bad queue number
  7415.        = 0000h nothing on queue
  7416.          else  number of bytes in first message in queue
  7417. SeeAlso: AH=0Bh,AH=0Ch
  7418. --------T-620B-------------------------------
  7419. INT 62 - Cswitch - SEND MESSAGE
  7420.     AH = 0Bh
  7421.     CX = number of bytes to write
  7422.     DS:SI -> buffer
  7423.     DX = queue number (0-63)
  7424. Return: AX = FFFEh triggered by something arriving, redo the call
  7425.        = FFFFh bad queue number
  7426.        = 0000h no message was on queue
  7427.          else  number of bytes in message
  7428. SeeAlso: AH=0Ah,AH=0Ch
  7429. --------T-620C-------------------------------
  7430. INT 62 - Cswitch - READ MESSAGE
  7431.     AH = 0Ch
  7432.     CX = number of bytes to read
  7433.     DS:SI -> buffer
  7434.     DX = queue number (0-63)
  7435. Return: AX = FFFFh bad queue number
  7436.          else  number of bytes transferred
  7437. SeeAlso: AH=0Ah,AH=0Bh
  7438. --------T-620D-------------------------------
  7439. INT 62 - Cswitch - DON'T ALLOW TASK TO BE SWAPPED OUT
  7440.     AH = 0Dh
  7441. SeeAlso: AH=0Eh
  7442. --------T-620E-------------------------------
  7443. INT 62 - Cswitch - ALLOW TASK TO BE SWAPPED OUT
  7444.     AH = 0Eh
  7445. SeeAlso: AH=0Dh
  7446. --------T-620F-------------------------------
  7447. INT 62 - Cswitch - LOAD AND RUN PROGRAM FROM DISK
  7448.     AH = 0Fh
  7449.     ES:BX -> command line
  7450.     CX = priority (1-10)
  7451.     DX = background flag
  7452.        = != 0000h  allows loading to EMS
  7453. Return: AX = 0000h task loader queue is full
  7454.        = 0001h  no error
  7455. SeeAlso: AH=07h,AH=10h,AH=13h
  7456. --------T-6210-------------------------------
  7457. INT 62 - Cswitch - TERMINATE SPAWNED PROGRAM
  7458.     AH = 10h
  7459. SeeAlso: AH=07h,AH=0Fh
  7460. --------T-6211-------------------------------
  7461. INT 62 - Cswitch - GET TCB INFORMATION
  7462.     AH = 11h
  7463.     ES:BX -> a pointer which will be set to the tcb address
  7464. Return: AX = tcb indentifier
  7465. SeeAlso: AH=12h
  7466. --------T-6212-------------------------------
  7467. INT 62 - Cswitch - GET TCB ADDRESS
  7468.     AH = 12h
  7469.     ES:BX -> a pointer which will be set to the tcb table address
  7470. Return: AX = tcb indentifier
  7471. SeeAlso: AH=11h
  7472. --------T-6213-------------------------------
  7473. INT 62 - Cswitch - CHECK STATUS OF PREVIOUS LOAD_TASK
  7474.     AH = 13h
  7475. Return: AX = FFFCh no Memory Control Blocks available
  7476.        = FFFDh no TCBs available
  7477.        = FFFEh insufficient memory
  7478.        = FFFFh cannot open file
  7479.        = 0000h load in progress (not done yet)
  7480.          else  tcb indentifier
  7481. SeeAlso: AH=0Fh
  7482. --------R-6247-------------------------------
  7483. INT 62 - PC Tools 7 COMMUTE - ???
  7484.     AH = 47h
  7485.     AL = subfunction (00h-31h)
  7486.     ???
  7487.     CF set
  7488. Return: ???
  7489. --------R-6248-------------------------------
  7490. INT 62 - PC Tools 7 COMMUTE - ???
  7491.     AH = 48h
  7492.     AL = ???
  7493.     ???
  7494.     CF set
  7495. Return: ???
  7496. --------R-6249-------------------------------
  7497. INT 62 - PC Tools 7 COMMUTE - ???
  7498.     AH = 49h
  7499.     ???
  7500.     CF set
  7501. Return: ???
  7502. Note:    may be the same as AH=4Ch
  7503. --------R-624A-------------------------------
  7504. INT 62 - PC Tools 7 COMMUTE - ???
  7505.     AH = 4Ah
  7506.     AL = subfunction (00h-46h)
  7507.     ???
  7508.     CF set
  7509. Return: ???
  7510. --------R-624B--BX1234-----------------------
  7511. INT 62 - PC Tools 7 COMMUTE - ???
  7512.     AH = 4Bh
  7513.     BX = 1234h
  7514.     CX = 1234h
  7515.     ES = ???
  7516.     CF set
  7517. Return: ???
  7518. --------R-624C-------------------------------
  7519. INT 62 - PC Tools 7 COMMUTE - ???
  7520.     AH = 4Ch
  7521.     BL = subfunction
  7522.         00h ???
  7523.         02h ???
  7524. Return: CF clear if successful
  7525.     CF set on error
  7526. --------R-626262-----------------------------
  7527. INT 62 - PC Tools 7 COMMUTE - INSTALLATION CHECK
  7528.     AX = 6262h
  7529.     CF set
  7530. Return: AX = 0000h
  7531.     BX = segment of resident code's PSP
  7532. --------*-63---------------------------------
  7533. INT 63 - reserved for user interrupt
  7534. --------d-63---------------------------------
  7535. INT 63 - Adaptec and OMTI controllers - DRIVE 0 DATA
  7536. Notes:    this vector stores the last four bytes of the parameter table for
  7537.       hard disk 0
  7538. SeeAlso: INT 60"Adaptec",INT 61"Adaptec",INT 62"Adaptec",INT 64"Adaptec"
  7539. ----------63---------------------------------
  7540. INT 63 - Oracle SQL Protected Mode Executive - ???
  7541. --------d-63---------------------------------
  7542. INT 63 - 4+Power FLOPPY CONTROLLER - ORIGINAL INT 13/40
  7543.    the "4+Power" quad floppy controller BIOS hooks INT 13 (or INT 40 if INT 13
  7544.    has been moved there) and places the old value here
  7545. ----------63---------------------------------
  7546. INT 63 - Kofax KF9X00 image manipulation card interface
  7547. --------Q-63---------------------------------
  7548. INT 63 - DESQview/X - SOCKET API
  7549. Notes:    parameters are passed by patching!! data field immediately following
  7550.       the entry point, as detailed below; the preferred method for calling
  7551.       the socket API is via INT 15/AX=DE2Eh
  7552.     the installation check consists of testing for the string "dvxunix"
  7553.       (yes, lowercase) at offset 9 from the interrupt handler start
  7554. SeeAlso: INT 15/AX=DE2Eh,INT BE"DESQview"
  7555. Index:    installation check;DESQview/X socket interface
  7556.  
  7557. Format of interrupt handler entry:
  7558. Offset    Size    Description
  7559.  00h  3 BYTEs    near jump or short jump + NOP to actual interrupt handler
  7560.  03h    WORD    offset from following pointer for initial top of local stack
  7561.  05h    DWORD    pointer to argument/stack block (see INT 15/AX=DE2Eh)
  7562.  09h  7 BYTEs    signature "dvxunix"
  7563. --------*-64---------------------------------
  7564. INT 64 - reserved for user interrupt
  7565. --------d-64---------------------------------
  7566. INT 64 - Adaptec controllers - DRIVE 1 DATA
  7567. Notes:    this vector stores the first four bytes of the parameter table for
  7568.       hard disk 1
  7569.     these vectors are used by the following Adaptec controllers:
  7570.         ACB 2370 A/B/C, ACB 2372 A/B/C, ACB 2333 A/B, 2322B-8, 2322B-16
  7571.     these vectors are NOT used by the following Adaptec controllers:
  7572.         ACB 2310, ACB 2312, ACB 2320D, ACB 2322D
  7573. SeeAlso: INT 60"Adaptec",INT 65"Adaptec",INT 66"Adaptec",INT 67"Adaptec"
  7574. ----------64---------------------------------
  7575. INT 64 - Oracle SQL Protected Mode Executive - ???
  7576. --------N-64---------------------------------
  7577. INT 64 - Novell NetWare to v2.0a - LOW-LEVEL API
  7578. Note:    equivalent to INT 7A for NetWare versions through 2.0a only; later
  7579.       versions do not use this interrupt for IPX/SPX access, instead
  7580.       getting an entry point from INT 2F/AX=7A00h
  7581. SeeAlso: INT 2F/AX=7A00h,INT 7A"Novell"
  7582. --------h-64---------------------------------
  7583. INT 64 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE
  7584. SeeAlso: INT 65"DG10",INT 66"DG10"
  7585. --------r-64---------------------------------
  7586. INT 64 - Extended Batch Language v3.14+
  7587.     AH = function
  7588.         00h to 5Fh chained to previous handler
  7589.         60h to 6Ch reserved, return immediately
  7590.         80h to FFh chained to previous handler
  7591.         6Dh (v4.01+) insert tone in queue
  7592.         AL = ???
  7593.         CX = frequency in Hertz
  7594.         DL = duration in clock ticks
  7595.         Return: AL = 00h if note stored
  7596.                = 01h if no room to store
  7597.         6Eh clear ??? counter/flag
  7598.         6Fh return counter/flag that AH=6Eh clears
  7599.         70h ???
  7600.         AL = ???
  7601.         71h ???
  7602.         AL = ???
  7603.         72h ???
  7604.         73h insert byte at end of keyboard buffer
  7605.         AL = byte to insert
  7606.         Return: AL = 00h if byte inserted
  7607.                = 01h if no room to store
  7608.         74h insert byte at front of keyboard buffer
  7609.         AL = byte to insert
  7610.         Return: AL = 00h if byte inserted
  7611.                = 01h if no room to store
  7612.         75h ???
  7613.         76h get keyboard "stack" status
  7614.         AL = 'K' if kbd read will read physical keyboard
  7615.              'S' if it will read EBL internal keyboard buffer
  7616.         AH = ???
  7617.         77h clear internal keyboard buffer
  7618.         78h ???
  7619.         AL = ???
  7620.         79h ???
  7621.         7Ah ???
  7622.         AL = ???
  7623.         7Bh ???
  7624.         AL = ???
  7625.         7Ch ???
  7626.         AL = ???
  7627.         7Dh ???
  7628.         AL = ???
  7629.         7Eh clear buffer for ???
  7630.         7Fh installation check
  7631.         Return: CX = version in BCD
  7632.             DI = segment of ???
  7633.             BX = segment of next program's PSP???
  7634. Program: Extended Batch Language is a batch-file enhancer by Seaware
  7635. Notes:    the chaining does not check whether the interrupt had been hooked
  7636.       before, so if you try to chain when the previous vector was 
  7637.       0000h:0000h, you'll be in trouble
  7638.     functions 72h and 7Ah-7Dh appear to be interfaces to the optional
  7639.       floating-point and extended function packages
  7640. Index:    installation check;EBL|installation check;Extended Batch Language
  7641. --------d-64---------------------------------
  7642. INT 64 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
  7643. Note:    This vector is overwritten by Pdisk to install custom harddrive types.
  7644.       It can either destroy 4 vectors and take no memory or TSR and take
  7645.       up some memory.
  7646. SeeAlso: INT 65"Pdisk"
  7647. --------*-65---------------------------------
  7648. INT 65 - reserved for user interrupt
  7649. --------d-65---------------------------------
  7650. INT 65 - Adaptec controllers - DRIVE 1 DATA
  7651. Note:    this vector stores the second four bytes of the parameter table for
  7652.       hard disk 1
  7653. SeeAlso: INT 64"Adaptec",INT 66"Adaptec",INT 67"Adaptec"
  7654. --------h-65---------------------------------
  7655. INT 65 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE
  7656. SeeAlso: INT 64"DG10",INT 66"DG10"
  7657. --------N-65---------------------------------
  7658. INT 65 - FTP Software NDIS-Packet Driver adapter - POST PROCESSING INTERRUPT
  7659. --------U-65---------------------------------
  7660. INT 65 - SD.COM v6.2
  7661.    The unregistered version of SD62.COM uses the low byte of this vector to
  7662.    count the number of invocations, displaying a registration reminder each
  7663.    time after the 20th use.
  7664. --------d-65---------------------------------
  7665. INT 65 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
  7666. SeeAlso: INT 64"Pdisk",INT 66"Pdisk"
  7667. --------s-65---------------------------------
  7668. INT 65 - Ad Lib SOUND.COM - INTERFACE
  7669.     SI = function number (see also entries below)
  7670.         0000h Init
  7671.         0002h RelTimeStart
  7672.         0003h SetState
  7673.         0004h GetState
  7674.         0005h Flush
  7675.         0006h SetMode
  7676.         0007h GetMode
  7677.         0008h SetRelVolume
  7678.         0009h SetTempo
  7679.         000Ah SetTranspose
  7680.         000Bh GetTranspose
  7681.         000Ch SetActVoice
  7682.         000Dh GetActVoice
  7683.         000Eh PlayNoteDel
  7684.         000Fh PlayNote
  7685.         0010h SetTimbre
  7686.         0011h SetPitch
  7687.         0012h SetTickBeat
  7688.         0013h NoteOn
  7689.         0014h NoteOff
  7690.         0015h Timbre
  7691.         0016h SetPitchBend
  7692.         0017h WaveForm
  7693.     ES:BX -> arguments
  7694. Note:    the installation check consists of checking for the signature block
  7695.       immediately preceding the interrupt handler (see below)
  7696. SeeAlso: SI=8000h
  7697. Index:    installation check;Ad Lib SOUND.COM
  7698.  
  7699. Format of signature block:
  7700. Offset    Size    Description
  7701.  00h    WORD    version number
  7702.  02h 19 BYTEs    "SOUND-DRIVER-AD-LIB"
  7703.  15h    BYTE    01h
  7704.  16h    BYTE    01h
  7705.  17h    BYTE    00h
  7706. --------s-65----SI0000-----------------------
  7707. INT 65 - Ad Lib SOUND.COM - INITIALIZE (RESET)
  7708.     SI = 0000h
  7709. --------s-65----SI0003-----------------------
  7710. INT 65 - Ad Lib SOUND.COM - SET STATE
  7711.     SI = 0003h
  7712.     ES:BX -> WORD state = 0000h disabled 
  7713.                 = 0001h enabled
  7714. SeeAlso: SI=0004h
  7715. --------s-65----SI0004-----------------------
  7716. INT 65 - Ad Lib SOUND.COM - GET STATE
  7717.     SI = 0004h
  7718. Return: AX = 0000h all done playing sounds
  7719.        = else  still playing sounds
  7720. SeeAlso: SI=0003h
  7721. --------s-65----SI0006-----------------------
  7722. INT 65 - Ad Lib SOUND.COM - SET MODE
  7723.     SI = 0006h
  7724.     ES:BX -> WORD mode = 0000h melodic
  7725.                = 0001h percussive
  7726. SeeAlso: SI=0007h
  7727. --------s-65----SI0007-----------------------
  7728. INT 65 - Ad Lib SOUND.COM - GET MODE
  7729.     SI = 0007h
  7730. Return: AX = 0000h melodic
  7731.        = 0001h percussive
  7732. SeeAlso: SI=0006h
  7733. --------s-65----SI000C-----------------------
  7734. INT 65 - Ad Lib SOUND.COM - SET ACTIVE VOICE
  7735.     SI = 000Ch
  7736.     ES:BX -> WORD voice = 0000h to 0008h
  7737. SeeAlso: SI=000Dh
  7738. --------s-65----SI000D-----------------------
  7739. INT 65 - Ad Lib SOUND.COM - GET ACTIVE VOICE
  7740.     SI = 000Dh
  7741. Return: AX = voice (0000h to 0008h)
  7742. SeeAlso: SI=000Ch
  7743. --------s-65----SI8000-----------------------
  7744. INT 65 u - Media Vision FM.COM v4.1a+ - GET INTERNAL DATA STRUCTURES
  7745.     SI = 8000h
  7746. Return: DX:AX -> internal data structures
  7747. Program: FM.COM is an Ad Lib SOUND.COM-compatible driver for Media Vision's
  7748.       Pro Audio Spectrum sound boards
  7749. SeeAlso: SI=8001h
  7750. --------s-65----SI8001-----------------------
  7751. INT 65 u - Media Vision FM.COM v4.1a+ - GET VOICE COUNT
  7752.     SI = 8001h
  7753. Return: AX = ???
  7754.     DX = number of voices??? (09h or 0Bh)
  7755. SeeAlso: SI=8000h
  7756. --------s-65----SI8002-----------------------
  7757. INT 65 - Media Vision FM.COM v4.1a+ - START BACKGROUND FM SOUNDS
  7758.     SI = 8002h
  7759. SeeAlso: SI=8003h
  7760. --------s-65----SI8003-----------------------
  7761. INT 65 - Media Vision FM.COM v4.1a+ - STOP BACKGROUND FM SOUNDS
  7762.     SI = 8003h
  7763. SeeAlso: SI=8002h
  7764. --------s-65----SI8004-----------------------
  7765. INT 65 U - Media Vision FM.COM v4.1a+ - GET ???
  7766.     SI = 8004h
  7767. Return: AX = ??? (0280h)
  7768.     DX = ??? (01A0h)
  7769. --------s-65----SI8005-----------------------
  7770. INT 65 U - Media Vision FM.COM v4.1a+ - ???
  7771.     SI = 8005h
  7772.     ???
  7773. Return: ???
  7774. SeeAlso: SI=8000h
  7775. --------S-65---------------------------------
  7776. INT 65 U - EZRECV v1.0 - API
  7777.     AX = function
  7778.         0000h ???
  7779.             Return: AX = ??? or FFFFh
  7780.         0001h ???
  7781.             Return: AX = status (0000h or 0001h)
  7782.         0002h ???
  7783.             Return: AX = status (0000h or 0001h)
  7784.         0003h set ??? to 0001h
  7785.             Return: AX = 0000h
  7786.         0004h ???
  7787.             Return: AX = ???
  7788. Return: BH = COM port being used
  7789.     BL = speed???
  7790.     CH = ???
  7791.     CL = ???
  7792.     DX = ???
  7793.     DS = ???
  7794.     ES = EZRECV data segment
  7795. Program: EZRECV is a background Zmodem file receiver by Express Consulting
  7796. --------*-66---------------------------------
  7797. INT 66 - reserved for user interrupt
  7798. --------d-66---------------------------------
  7799. INT 66 - Adaptec controllers - DRIVE 1 DATA
  7800. Note:    this vector stores the third four bytes of the parameter table for
  7801.       hard disk 1
  7802. SeeAlso: INT 64"Adaptec",INT 65"Adaptec",INT 67"Adaptec"
  7803. --------h-66---------------------------------
  7804. INT 66 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE
  7805. SeeAlso: INT 64"DG10"
  7806. --------N-66---------------------------------
  7807. INT 66 C - Nanosoft, Inc. TurboNET - NETWORK PROCESSING ???
  7808. Program: TurboNET is a NetBIOS-based file redirector and server
  7809. Note:    hooked but not used (IRET) by both redirector and server; called from
  7810.       server's INT 28 handler
  7811. SeeAlso: INT 2F/AX=8100h
  7812. --------d-66---------------------------------
  7813. INT 66 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
  7814. SeeAlso: INT 64"Pdisk",INT 67"Pdisk"
  7815. --------W-66---------------------------------
  7816. INT 66 - Microsoft Windows VITD.386 Virtual Interval Timer
  7817. Note:    This Windows 3.x Virtual Device Driver implements a virtual timer
  7818.       which will expire and call INT 66.  This timer can be used to
  7819.       calculate elapsed execution time etc.
  7820. --------K-66---------------------------------
  7821. INT 66 - Newkey v5.4 - INSTALLATION VECTOR
  7822. Return: immediately (IRET)
  7823. Program: Newkey is a shareware keyboard macro program by Frank A. Bell
  7824. Note:    the installation check consists of testing for the signature bytes
  7825.       FDh FCh FFh FEh at offset 03h in the interrupt handlers segment;
  7826.       Newkey may use any interrupt from 60h through 67h and will install
  7827.       on the highest vector in this range which is unused (normally 66h)
  7828. BUG:    the code obviously intends to use INT F0-FE, INT 70-77, and INT 68-6F
  7829.       before falling back to INT 60-67, but only uses the last of these
  7830.       ranges in v5.4
  7831. SeeAlso: INT 2F/AX=E300h
  7832. Index: installation checks;Newkey|Newkey;installation check
  7833. --------F-6601-------------------------------
  7834. INT 66 - BitFax Scheduler - SET MODE???
  7835.     AH = 01h
  7836. SeeAlso: AH=02h
  7837. --------F-6602-------------------------------
  7838. INT 66 - BitFax Scheduler - SET MODE???
  7839.     AH = 02h
  7840. SeeAlso: AH=01h
  7841. --------F-6603-------------------------------
  7842. INT 66 - BitFax Scheduler - SCHEDULE FAX TRANSMISSIONS
  7843.     AH = 03h
  7844.     ???
  7845. Return: ???
  7846. SeeAlso: AH=05h
  7847. --------F-6604-------------------------------
  7848. INT 66 - BitFax Scheduler - GET STATUS???
  7849.     AH = 04h
  7850. Return: AX = ??? (0000h or 0001h)
  7851.     DX = BitSched version???  (for versions >= 3.00)
  7852.         9796h (ver. 3.00)
  7853.         97E6h (ver. 3.02)
  7854.         92D0h (ver. 3.04.06)
  7855.         9510h (ver. 3.06.02)
  7856. SeeAlso: AH=06h,AX=3345h,INT 2F/AX=8000h"FaxBIOS"
  7857. --------F-6605-------------------------------
  7858. INT 66 - BitFax Scheduler - CONVERT FILE AND SEND FAX
  7859.     AH = 05h
  7860.     BX:CX -> command block (see below)
  7861.     ???
  7862. Return: ???
  7863. SeeAlso: AH=03h
  7864.  
  7865. Format of command block:
  7866. Offset    Size    Description
  7867.  00h 18 BYTEs    configuration bytes???
  7868.  12h    BYTEs    ASCIZ temporary file name to place converted fax
  7869.  52h    BYTEs    ASCIZ directory containing BitFax executables
  7870.  92h    BYTEs    ASCIZ telephone number
  7871.  C2h    BYTE    00h don't send cover page
  7872.         01h send cover page
  7873.  C3h 15 BYTEs    configuration bytes???
  7874.  E2h    BYTEs    ASCIZ path of BITFAX.TRA file (containing additional
  7875.         configuration information???)
  7876. 122h    BYTEs    configuration bytes???
  7877. 12Ch    BYTE    00h don't send cover page
  7878.         01h send cover page
  7879. 12Dh  7 BYTEs    configuration bytes???
  7880. 134h    BYTEs    ASCIZ path of file to send
  7881. 174h    BYTEs    more configuration bytes???
  7882.     ???
  7883. --------F-6606-------------------------------
  7884. INT 66 - BitFax Scheduler - SET MODE???
  7885.     AH = 06h
  7886. Return: DX = BitSched version??? (same as AH=04h)
  7887. SeeAlso: AH=04h
  7888. --------s-660688-----------------------------
  7889. INT 66 - IBMSND driver - PLAY 8-BIT DIGITIZED SOUND
  7890.     AX = 0688h
  7891.     DS:SI -> SNDSTRUC (see below)
  7892. Return: ???
  7893. Program: The IBMSND driver is part of John W. Ratcliff's
  7894.        The IBM Digitized Sound Package
  7895. Note:    the installation check consists of looking for a valid signature
  7896.       string six bytes prior to the interrupt handler; this string may
  7897.       be either "KERN" or "MIDI" (in the latter case, call AX=0701h to
  7898.       determine whether IBMSND is installed)
  7899. SeeAlso: AX=068Bh,AX=068Fh,AX=0701h
  7900.  
  7901. Format of SNDSTRUC:
  7902. Offset    Size    Description
  7903.  00h    DWORD    -> audio data
  7904.  04h    WORD    length of audio data in bytes
  7905.  06h    DWORD    -> playback status flag
  7906.  0Ah    WORD    playback frequency
  7907. --------s-660689-----------------------------
  7908. INT 66 - IBMSND driver - REPORT SOUND DRIVER STATUS
  7909.     AX = 0689h
  7910. Return: AX = status
  7911.         0000h no sound playing
  7912.         0001h sound effect is currently playing
  7913. SeeAlso: AX=0688h,AX=068Bh,AX=068Ch
  7914. --------s-66068A-----------------------------
  7915. INT 66 - IBMSND driver - PREFORMAT SOUND
  7916.     AX = 068Ah
  7917.     DS:SI -> SNDSTRUC (see AX=0688h)
  7918. Desc:    convert audio data into output hardware format
  7919. SeeAlso: AX=068Bh
  7920. --------s-66068B-----------------------------
  7921. INT 66 - IBMSND driver - PLAY PREFORMATTED SOUND
  7922.     AX = 068Bh
  7923.     DS:SI -> SNDSTRUC (see AX=0688h)
  7924. Return: AX = ???
  7925. SeeAlso: AX=0688h,AX=068Ah,AX=068Fh
  7926. --------s-66068C-----------------------------
  7927. INT 66 - IBMSND driver - REPORT AUDIO DRIVER CAPABILITIES
  7928.     AX = 068Ch
  7929. Return: AX = capabilities (see below)
  7930.     DX = playback rate if fixed-frequency playback
  7931. SeeAlso: AX=0689h,AX=068Dh
  7932.  
  7933. Bitfields for capabilities:
  7934.  bit 0    can play audio in background
  7935.  bit 1    data is massaged
  7936.  bit 2    driver plays at fixed frequency, resampling input data to fit
  7937.  bit 3    driver uses timer interrupt
  7938. --------s-66068D-----------------------------
  7939. INT 66 - IBMSND driver - REPORT CURRENT SAMPLE ADDRESS
  7940.     AX = 068Dh
  7941. Return: AX = current playback address
  7942. Desc:    determine what point in the audio data the playback has reached, for
  7943.       synchronization with video or animation effects
  7944. Notes:    this function applies to background playback only
  7945.     the reported address may be an approximation rather than the exact
  7946.       address
  7947. SeeAlso: AX=068Ch,AX=0691h
  7948. --------s-66068E-----------------------------
  7949. INT 66 - IBMSND driver - SET CALLBACK ADDRESS
  7950.     AX = 068Eh
  7951.     BX:DX -> callback function
  7952.         0000h:0000h to disable callback
  7953.     DS = value to load into DS when calling the callback function
  7954. Desc:    specify the function to be called when playback of a sound effect is
  7955.       completed
  7956. Note:    the callback function will typically be called during a hardware
  7957.       interrupt, so all the usual precautions should be taken except for
  7958.       preserving registers
  7959. SeeAlso: AX=0691h
  7960. --------s-66068F-----------------------------
  7961. INT 66 - IBMSND driver - STOP CURRENT SOUND
  7962.     AX = 068Fh
  7963. Desc:    cause any currently-playing sound effect to be terminated
  7964. SeeAlso: AX=0688h,AX=068Bh
  7965. --------s-660690-----------------------------
  7966. INT 66 - IBMSND driver - "SetAudioHardware" SET UP HARDWARE INFO [obsolete]
  7967.     AX = 0690h
  7968. Note:    this function is no longer implemented
  7969. --------s-660691-----------------------------
  7970. INT 66 - IBMSND driver - REPORT CALLBACK ADDRESS
  7971.     AX = 0691h
  7972. Return: AX:DX -> current callback function
  7973.     BX = original caller's DS register
  7974. Program: The IBMSND driver is part of John W. Ratcliff's
  7975.        The IBM Digitized Sound Package
  7976. SeeAlso: AX=068Eh
  7977. --------s-660701-----------------------------
  7978. INT 66 - IBM Digitized Sound Package MIDI driver - GET DIGITIZED SOUND CAPABIL
  7979.     AX = 0701h
  7980. Return: AX = digitized sound capabilities
  7981.         0000h if digitized sound driver (functions 06xxh) not available
  7982. Note:    the installation check for the MIDI driver is to test for the signature
  7983.       "MIDI" six bytes before the interrupt handler
  7984. SeeAlso: AX=0688h
  7985. --------F-663345-----------------------------
  7986. INT 66 - BitFax Scheduler - REMOVE TSR FROM MEMORY
  7987.     AX = 3345h
  7988. Return: AX = FFFFh error removing TSR
  7989. Note:    the installation check consists of checking for the signature
  7990.       "BitFax Scheduler" beginning two bytes past the interrupt handler
  7991. SeeAlso: AH=04h,INT 2F/AH=2Ah,INT 2F/AX=CB00h
  7992. Index:    installation check;BitFax Scheduler
  7993. --------t-66FFFBBXFFFB-----------------------
  7994. INT 66 - MicroHelp Stay-Res Plus - ???
  7995.     AX = FFFBh
  7996.     BX = FFFBh
  7997.     ???
  7998. Return: ???
  7999. SeeAlso: AX=FFFEh,INT 2D"AMIS"
  8000. --------t-66FFFEBXFFFE-----------------------
  8001. INT 66 - MicroHelp Stay-Res/Stay-Res Plus - UNINSTALL
  8002.     AX = FFFEh
  8003.     BX = FFFEh
  8004. Return: only if unsuccessful
  8005. Notes:    installation check is for the interrupt handler to begin with the bytes
  8006.       FBh 9Ch or 9Ch FAh, and the program name (not case-sensitive) to
  8007.       appear at offset 0005h (older versions) or the offset returned by
  8008.       AX=FFFFh/BX=FFF0h in the interrupt handler segment.
  8009.     Programs which use Stay-Res include ThesPlus (program name "THESPLUS")
  8010.       and Personal Calendar (program name "CAL") by Paul Mun~oz-Colman.
  8011. SeeAlso: AX=FFFBh,AX=FFFFh,INT 2D"AMIS"
  8012. Index:    installation check;MicroHelp Stay-Res|installation check;ThesPlus
  8013. Index:    installation check;Personal Calendar|installation check;CAL
  8014. --------t-66FFFFBXFFF0-----------------------
  8015. INT 66 - MicroHelp Stay-Res Plus - FIND PROGRAM NAME
  8016.     AX = FFFFh
  8017.     BX = FFF0h
  8018. Return: DI = offset of program name in interrupt handler segment
  8019. SeeAlso: AX=FFFBh,AX=FFFEh,INT 2D"AMIS"
  8020. ---------------------------------------------
  8021.